日時型(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 (マイクロ秒)
NULLを渡すと?
NULLを返します。SELECT date_part('year', to_timestamp(null)); --結果 = NULL
検証環境
- PostgreSQL 13.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 10.2.1_pre1) 10.2.1 20201203, 64-bit
- Docker image: postgres:13-alpine
- pgAdmin 4 Version 5.1
- Docker image: dpage/pgadmin4
- Docker Desktop 3.3.1(63152)
- Docker Engine 20.10.5
- Microsoft Windows 10 Pro Version 20H2 OS Build 19042.928 Experience: Windows Feature Experience Pack 120.2212.551.0
- PostgreSQL 12.2, compiled by Visual C++ build 1914, 64-bit
- Microsoft Windows 10 Pro Version 1909 OS Build 18363.1171