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_partとextractは要素を返し、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