PostgreSQL - 日時型から 年 月 日 時 分 秒を数値で取り出す

日時型(timestamp) から 個別の値を取得するには date_part() 関数 を使用します。

date_part 関数の使い方

引数に 日時(timestamp型)と 取得したい項目名 を渡すと、対応する値を返します。
結果(年 月 日 など) = date_part('取得したい項目名', timestamp値);

サンプルSQL

SELECT date_part('year'         , timestamp'2000-01-23 04:05:06'); --結果 = 2000    (年)
SELECT date_part('month'        , timestamp'2000-01-23 04:05:06'); --結果 = 1       (月) 1 - 12
SELECT date_part('day'          , timestamp'2000-01-23 04:05:06'); --結果 = 23      (日) 1 - 31
SELECT date_part('hour'         , timestamp'2000-01-23 04:05:06'); --結果 = 4       (時) 0 - 23
SELECT date_part('minute'       , timestamp'2000-01-23 04:05:06'); --結果 = 5       (分) 0 - 59
SELECT date_part('second'       , timestamp'2000-01-23 04:05:06'); --結果 = 6       (秒) 0 - 59
SELECT date_part('milliseconds' , timestamp'2000-01-23 04:05:06'); --結果 = 6000    (ミリ秒)
SELECT date_part('microseconds' , timestamp'2000-01-23 04:05:06'); --結果 = 6000000 (マイクロ秒)

実行結果(pgAdmin 4) 実行結果

NULLを渡すと?

NULLを返します。
SELECT date_part('year', to_timestamp(null)); --結果 = NULL

検証環境

関連ページ