Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Funktion EXTRACT
Die EXTRACT-Funktion gibt einen Datums- oder Uhrzeitteil von einem TIMESTAMP-, TIMESTAMPTZ-, TIME- oder TIMETZ-Wert zurück. Beispiele hierfür sind ein Tag, Monat, Jahr, eine Stunde, Minute, Sekunde, Millisekunde oder Mikrosekunde aus einem Zeitstempel.
Syntax
EXTRACT(datepart FROM source)
Argumente
- datepart
-
Das zu extrahierende Unterfeld eines Datums- oder Uhrzeitwerts, z. B. Tag, Monat, Jahr, Stunde, Minute, Sekunde, Millisekunde oder Mikrosekunde. Für mögliche Werte vgl. Datumsteile für Datums- oder Zeitstempelfunktionen.
- source
-
Eine Spalte oder ein Ausdruck, der zum Datentyp TIMESTAMP, TIMESTAMPTZ, TIME oder TIMETZ ausgewertet wird.
Rückgabetyp
INTEGER, wenn der Wert source zum Datentyp TIMESTAMP, TIME oder TIMETZ ausgewertet wird.
DOUBLE PRECISION, wenn der Wert source zum Datentyp TIMESTAMPTZ ausgewertet wird.
Beispiele mit TIMESTAMP
Im folgenden Beispiel werden die Wochennummern für Verkäufe bestimmt, bei denen der gezahlte Preis 10 000 USD oder mehr betrug.
select salesid, extract(week from saletime) as weeknum from sales where pricepaid > 9999 order by 2; salesid | weeknum --------+--------- 159073 | 6 160318 | 8 161723 | 26
Im folgenden Beispiel wird der Minutenwert aus einem Literal-Zeitstempel-Wert zurückgegeben.
select extract(minute from timestamp '2009-09-09 12:08:43'); date_part --
Im folgenden Beispiel wird der Millisekundenwert aus einem Literal-Timestamp-Wert zurückgegeben.
select extract(ms from timestamp '2009-09-09 12:08:43.101'); date_part ----------- 101
Beispiele mit TIMESTAMPTZ
Im folgenden Beispiel wird der Jahreswert aus einem Literal-Timestamptz-Wert zurückgegeben.
select extract(year from timestamptz '1.12.1997 07:37:16.00 PST'); date_part ----------- 1997
Beispiele mit TIME
Die folgende Beispieltabelle TIME_TEST enthält eine Spalte TIME_VAL (Typ TIME) mit drei eingefügten Werten.
select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
Im folgenden Beispiel werden die Minuten aus jedem time_val extrahiert.
select extract(minute from time_val) as minutes from time_test; minutes ----------- 0 0 58
Im folgenden Beispiel werden die Stunden aus jedem time_val extrahiert.
select extract(hour from time_val) as hours from time_test; hours ----------- 20 0 0
Im folgenden Beispiel wird Millisekunden aus einem Literalwert extrahiert.
select extract(ms from time '18:25:33.123456'); date_part ----------- 123
Beispiele mit TIMETZ
Die folgende Beispieltabelle TIMETZ_TEST enthält eine Spalte TIMETZ_VAL (Typ TIMETZ) mit drei eingefügten Werten.
select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
Im folgenden Beispiel werden die Stunden aus jedem timetz_val extrahiert.
select extract(hour from timetz_val) as hours from time_test; hours ----------- 4 0 5
Im folgenden Beispiel wird Millisekunden aus einem Literalwert extrahiert. Literale werden nicht in UTC konvertiert, bevor die Extraktion verarbeitet wurde.
select extract(ms from timetz '18:25:33.123456 EST'); date_part ----------- 123
Im folgenden Beispiel wird die Stunde der Zeitzonenabweichung von UTC aus einem Literal-Timetz-Wert zurückgegeben.
select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT'); date_part ----------- -7