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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.