この記事では、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’) |
簡単にまとめましたが、誰かの参考になれば幸いです。
コメント