PostgreSQL | データ型 | 日付・時刻型

日付・時刻型

サイズ 説明 別名
timestamp [(p)] without time zone 8バイト 日付と時刻
timestamp [(p)] with time zone 8バイト 日付、時刻、タイムゾーン timestamptz
interval [(p)] 12バイト 時間間隔
date 4バイト 日付
time [(p)] without time zone 8バイト 時刻
time [(p)] with time zone 12バイト 時刻とタイムゾーン timetz

省略可能なpは0~6の小数秒精度である。曖昧な入力形式の解釈はDateStyleに依存する。

January 8, 1999   1999-01-08   1999-Jan-08   19990108
04:05:06.789      04:05:06     04:05 PM
04:05:06 PST      04:05:06+09:00

韓国標準時は+09:00である。リテラルは単一引用符で囲む。

timestamp                 '2004-10-19 10:23:54'
timestamp with time zone  '2004-10-19 10:23:54+09'
date                      '2004-10-19'
time                      '10:23:54'
select now(), now() - interval '30 minute';
select now(), now()::date - '1 day'::interval;

その他の操作

select now();
show timezone;
set time zone 'Asia/Seoul';
select current_date, current_time, timeofday();
select now(), current_timestamp, timestamp 'now';

date_partextractは要素を返し、date_truncは指定単位で切り捨てる。

select date_part('year', timestamp '2020-07-30 20:38:40');
select extract('isoyear' from date '2006-01-01'); -- 2005
select date_trunc('year', timestamp '2020-07-30 20:38:40');
select date_part('month', timestamp '2020-07-30 20:38:40');
select extract('month' from interval '2 years 13 months'); -- 1
select date_trunc('month', timestamp '2020-07-30 20:38:40');
select date_part('day', timestamp '2020-07-30 20:38:40');
select date_trunc('day', timestamp '2020-07-30 20:38:40');
select date_part('hour', interval '4 hours 3 minutes');
select date_trunc('hour', timestamp '2020-07-30 20:38:40');
select date_part('minute', timestamp '2020-07-30 20:38:40');
select date_trunc('minute', timestamp '2020-07-30 20:38:40');
select extract('second' from time '17:12:28.5');
select date_trunc('second', timestamp '2013-07-30 20:38:40');
select extract('century' from timestamp '2020-07-30 20:38:40'); -- 21
select date_trunc('century', timestamp '2020-07-30 20:38:40');
select extract('isodow' from timestamp '2013-07-30 20:38:40');
select extract('doy' from timestamp '2020-07-30 20:38:40'); -- 212