century
The century
SELECT EXTRACT(CENTURY FROM TIMESTAMP '2000-12-16 12:21:13');Result: 20SELECT EXTRACT(CENTURY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 21
The first century starts at 0001-01-01 00:00:00 AD, but they didn’t know it at the time at the time. この定義は、すべてのグレゴリオ暦の国に適用されます。 世紀番号0は存在せず、-1世紀から1世紀へと進みます。 もし、これに異論がある場合は、苦情を書いてください。 Pope, Cathedral Saint-Peter of Roma, Vatican.
PostgreSQL 8.0より前のリリースでは、従来の世紀の番号付けに従わず、単に年フィールドを100で割ったものを返していました。
day
タイムスタンプの値の場合、日(月)フィールド(1〜31)です。
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 16SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');Result: 40
decade
年を10で割った値
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 200
dow
日曜日(0)から土曜日(6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');Result: 5
ただし、extract
の曜日はto_char(..., 'D')
とは異なることに注意する。
doy
今年の日 (1 – 365/366)
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 47
epoch
日付とタイムスタンプ値の場合、1970-01-01 00:00 からの秒数です。00 UTC (負の値も可); 間隔値の場合、その間隔の合計秒数
SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2001-02-16 20:38:40.12-08');Result: 982384720.12SELECT EXTRACT(EPOCH FROM INTERVAL '5 days 3 hours');Result: 442800
以下は、エポック値をタイムスタンプに戻す方法です:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';
(to_timestamp
関数は、上記の変換をカプセル化しています。)
hour
時間フィールド (0 – 23)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 20
isodow
月曜日 (1) から日曜日 (7) の曜日
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');Result: 7
日曜日以外はdowと同じです。
isoyear
日付が属するISO 8601の週番号年 (間隔には適用されない)
SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');Result: 2005SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');Result: 2006
各ISO 8601週番号年は1月4日を含む週の月曜日から始まるため、1月初旬や12月末にはISO年はグレゴリオ年と異なる場合があります。
このフィールドは8.3より前のPostgreSQLリリースでは使用できません。
マイクロ秒
秒フィールド(端数を含む)に1 000 000を掛けたものです。 8.0より前のPostgreSQLのリリースでは、千年紀は従来の番号付けに従わず、年フィールドを1000で割ったものを返していました。 完全な秒を含むことに注意してください。
SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');Result: 28500
分
分フィールド(0〜59)
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 38
月
タイムスタンプ値の場合、年内の月番号(1〜12); 間隔値の場合、12進数の月数 (0 – 11)
SELECT EXTRACT(MONTH FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2SELECT EXTRACT(MONTH FROM INTERVAL '2 years 3 months');Result: 3SELECT EXTRACT(MONTH FROM INTERVAL '2 years 13 months');Result: 1
quarter
その日付がある年の四半期 (1 – 4)
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');Result: 1
second
端数を含む秒フィールド (0 – 59)
SELECT EXTRACT(SECOND FROM TIMESTAMP '2001-02-16 20:38:40');Result: 40SELECT EXTRACT(SECOND FROM TIME '17:12:28.5');Result: 28.5
timezone
UTCからの時間帯オフセット、秒単位の測定値です。 正の値はUTCの東のタイムゾーンに対応し、負の値はUTCの西のタイムゾーンに対応します。 (技術的には、PostgreSQLはうるう秒を処理しないのでUT1を使用します。)
timezone_hour
時間帯オフセットの時間成分
timezone_minute
時間帯オフセットの分成分
week
ISO8601週番号の週番号です。 定義によると、ISOの週は月曜日から始まり、その年の最初の週はその年の1月4日を含んでいます。 言い換えれば、その年の最初の木曜日はその年の第1週にあります。
ISO 週番号システムでは、1月初旬の日付が前年の第52週または第53週の一部になることが可能で、12月下旬の日付が翌年の第1週の一部になることが可能です。 例えば、2005-01-01は2004年の第53週に、2006-01-01は2005年の第52週に、2012-12-31は2013年の第1週に含まれます。
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');Result: 7
year
yearフィールドです。 西暦0年は存在しないので、西暦から紀元前の年を引くのは注意しなければならないことに注意してください。