目次
PostgreSQL で現在の年・月・日・時・分・秒を取得する方法です。 (ここで紹介しているほかにも取得方法はあると思います。)
環境
- PostgreSQL 9.5
年・月・日・時・分・秒を文字列で取得
年・月・日・時・分・秒を文字列で取得するには、 to_char
と current_timestamp
, current_date
, current_time
を組み合わせて使います。 ここでは current_timestamp
を使った例のみ掲載します。
1 2 |
select to_char(current_timestamp, 'YYYY-MM-DD HH12:MI:SS'); --> '2018-01-04 10:04:17' |
表示フォーマットは PostgreSQL のドキュメントにありますが、 使えるパターンはかなり多いです。
to_char
と to_number
を組み合わせれば、 年・月・日・時・分・秒をそれぞれ数値で取得することも可能です。
一方で、 PostgreSQL には それらを数値で取得する関数も用意されていますのでそちらも紹介します。
年・月・日を数値で取得
current_date
または current_timestamp
と date_part
を使います。 date_part
が返す年,月,日の数値型です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
------------------------------ -- use current_date ------------------------------ select date_part('year', current_date); --> 2018 select date_part('month', current_date); --> 1 select date_part('day', current_date); --> 4 ------------------------------ -- use current_timestamp ------------------------------ select date_part('year', current_timestamp); --> 2018 select date_part('month', current_timestamp); --> 1 select date_part('day', current_timestamp); --> 4 |
時・分・秒を数値で取得
current_time
または current_timestamp
と date_part
を使います。 date_part
が返す時,分,秒の数値型です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
------------------------------ -- use current_time ------------------------------ select date_part('hour', current_time); --> 20 select date_part('minute', current_time); --> 54 select date_part('second', current_time); --> 35.144505 ------------------------------ -- use current_timestamp ------------------------------ select date_part('hour', current_timestamp); --> 20 select date_part('minute', current_timestamp); --> 54 select date_part('second', current_timestamp); --> 35.144505 |