【PostgreSQL】日付・時刻・曜日フォーマット変換|to_char( )

プログラマのメモ帳

この記事では、PostgreSQLを使用してデータベースの日付、時刻、曜日データを指定した形式に出力する方法を備忘録としてまとめています。

使用するのは データフォーマッティング関数である to_char( ) です。

to_char(timestamp, "出力するフォーマット")

例として、カラムが1つのテーブルを作成してデータを出力してみます。

スポンサーリンク

出力例

テスト用のテーブルを作成し、時刻データを追加して、to_char()コマンドで出力します。

# テーブルを作成
create table test_time_t (date_time timestamp with time zone);

#時刻データを1件追加する
insert into test_time_t values('2020-09-08 13:55:59');

# フォーマットを指定せず出力
select * from test_time_t;
#=>  2020-09-08 13:55:59+09

# フォーマットを指定して出力
select to_char("date_time", 'YYYY-MM-DD HH24:MI:SS Month Mon Day Dy') AS date_time from test_time_t;
#=> 2020-09-08 13:55:59 September Sep Tuesday Tue

このような感じで簡単に出力フォーマットを指定することが出来ます。(今回は、「AS 出力する列名」で元のカラム名と同じ”date_time”にしています。)

よく使用する主なフォーマット

主なフォーマットのみ紹介します。

その他のフォーマットについては以下のサイトを参照してください。

PostgreSQL 7.3.4 ユーザガイド Chapter 6. 関数と演算子 6.7. データ型フォーマッティング関数

出力フォーマット
年(2020)to_char(timestamp, ‘YYYY’)
月(01~12)to_char(timestamp, ‘MM’)
日(01~31)to_char(timestamp, ‘DD’)
月(January~December)to_char(timestamp, ‘Month’)
月(Jan~Dec)to_char(timestamp, ‘Mon’)
曜日(Sunday~Saturday)to_char(timestamp, ‘Day’)
曜日(Sun~Sat)to_char(timestamp, ‘Dy’)
時(00~23)to_char(timestamp, ‘HH24’)
分(00~59)to_char(timestamp, ‘MI’)
秒(00~59)to_char(timestamp, ‘SS’)

簡単にまとめましたが、誰かの参考になれば幸いです。

コメント

タイトルとURLをコピーしました