Jahrhundert
Das Jahrhundert
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
Das erste Jahrhundert beginnt am 0001-01-01 00:00:00 n.Chr., obwohl man es damals noch nicht wusste. Diese Definition gilt für alle Länder mit gregorianischem Kalender. Es gibt keine Jahrhundertnummer 0, man geht von -1 Jahrhundert bis 1 Jahrhundert. Wenn Sie damit nicht einverstanden sind, schreiben Sie bitte Ihre Beschwerde an: Papst, Kathedrale Sankt-Peter von Rom, Vatikan.
PostgreSQL-Versionen vor 8.0 folgten nicht der konventionellen Nummerierung von Jahrhunderten, sondern gaben nur das Jahresfeld geteilt durch 100 zurück.
day
Für Zeitstempelwerte, das Feld Tag (des Monats) (1 – 31) ; für Intervallwerte die Anzahl der Tage
SELECT EXTRACT(DAY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 16SELECT EXTRACT(DAY FROM INTERVAL '40 days 1 minute');Result: 40
decade
Das Jahresfeld geteilt durch 10
SELECT EXTRACT(DECADE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 200
dow
Der Wochentag als Sonntag (0) bis Samstag (6)
SELECT EXTRACT(DOW FROM TIMESTAMP '2001-02-16 20:38:40');Result: 5
Beachten Sie, dass die Nummerierung der Wochentage in extract
sich von der der Funktion to_char(..., 'D')
unterscheidet.
doy
Der Tag des Jahres (1 – 365/366)
SELECT EXTRACT(DOY FROM TIMESTAMP '2001-02-16 20:38:40');Result: 47
epoch
Für Datums- und Zeitstempelwerte, die Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC (kann negativ sein); bei Intervallwerten die Gesamtzahl der Sekunden im Intervall
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
So können Sie einen Epochenwert in einen Zeitstempel umwandeln:
SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 982384720.12 * INTERVAL '1 second';
(Die Funktion to_timestamp
kapselt die obige Umwandlung.)
hour
Das Stundenfeld (0 – 23)
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 20
isodow
Der Wochentag als Montag (1) bis Sonntag (7)
SELECT EXTRACT(ISODOW FROM TIMESTAMP '2001-02-18 20:38:40');Result: 7
Dies ist identisch mit dow, außer Sonntag. Dies entspricht der ISO 8601-Wochentagsnummerierung.
isoyear
Das ISO 8601-Wochennummerierungsjahr, in das das Datum fällt (gilt nicht für Intervalle)
SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-01');Result: 2005SELECT EXTRACT(ISOYEAR FROM DATE '2006-01-02');Result: 2006
Jedes ISO 8601-Wochennummerierungsjahr beginnt mit dem Montag der Woche, die den 4. Januar enthält, so dass Anfang Januar oder Ende Dezember das ISO-Jahr vom gregorianischen Jahr abweichen kann. Siehe das Wochenfeld für weitere Informationen.
Dieses Feld ist in PostgreSQL-Versionen vor 8.3 nicht verfügbar.
Mikrosekunden
Das Sekundenfeld, einschließlich der Bruchteile, multipliziert mit 1 000 000; beachten Sie, dass dies volle Sekunden einschließt
SELECT EXTRACT(MICROSECONDS FROM TIME '17:12:28.5');Result: 28500000
Jahrtausend
Das Jahrtausend
SELECT EXTRACT(MILLENNIUM FROM TIMESTAMP '2001-02-16 20:38:40');Result: 3
Jahre im Jahr 1900 gehören zum zweiten Jahrtausend. Das dritte Jahrtausend begann am 1. Januar 2001.
PostgreSQL-Versionen vor 8.0 folgten nicht der konventionellen Nummerierung von Jahrtausenden, sondern gaben nur das Jahresfeld geteilt durch 1000 zurück.
milliseconds
Das Sekundenfeld, einschließlich Bruchteile, multipliziert mit 1000. Beachten Sie, dass dies volle Sekunden einschließt.
SELECT EXTRACT(MILLISECONDS FROM TIME '17:12:28.5');Result: 28500
Minute
Das Minutenfeld (0 – 59)
SELECT EXTRACT(MINUTE FROM TIMESTAMP '2001-02-16 20:38:40');Result: 38
Monat
Für Zeitstempelwerte, die Nummer des Monats innerhalb des Jahres (1 – 12) ; für Intervallwerte die Anzahl der Monate, modulo 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
Quartal
Das Quartal des Jahres (1 – 4), in dem das Datum liegt
SELECT EXTRACT(QUARTER FROM TIMESTAMP '2001-02-16 20:38:40');Result: 1
Sekunde
Das Sekundenfeld, einschließlich der Bruchteile (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
Zeitzone
Die Zeitzonenabweichung von UTC, gemessen in Sekunden. Positive Werte entsprechen den Zeitzonen östlich von UTC, negative Werte den Zonen westlich von UTC. (Technisch gesehen verwendet PostgreSQL UT1, da Schaltsekunden nicht behandelt werden.)
timezone_hour
Die Stundenkomponente des Zeitzonen-Offsets
timezone_minute
Die Minutenkomponente des Zeitzonen-Offsets
week
Die Nummer der nach ISO 8601 nummerierten Woche des Jahres. Definitionsgemäß beginnen ISO-Wochen montags, und die erste Woche eines Jahres enthält den 4. Januar des betreffenden Jahres. Mit anderen Worten, der erste Donnerstag eines Jahres liegt in Woche 1 des Jahres.
Im ISO-Wochennummerierungssystem ist es möglich, dass ein Datum Anfang Januar zur 52. oder 53. Woche des Vorjahres gehört und ein Datum Ende Dezember zur ersten Woche des nächsten Jahres. Zum Beispiel ist der 2005-01-01 Teil der 53. Woche des Jahres 2004 und der 2006-01-01 Teil der 52. Woche des Jahres 2005, während der 2012-12-31 Teil der ersten Woche des Jahres 2013 ist. Es wird empfohlen, das Feld isoyear zusammen mit week zu verwenden, um konsistente Ergebnisse zu erhalten.
SELECT EXTRACT(WEEK FROM TIMESTAMP '2001-02-16 20:38:40');Result: 7
year
Das Feld year. Denken Sie daran, dass es kein 0 AD gibt, so dass die Subtraktion von BC-Jahren von AD-Jahren mit Vorsicht erfolgen sollte.
SELECT EXTRACT(YEAR FROM TIMESTAMP '2001-02-16 20:38:40');Result: 2001