Die EXTRACT-Funktion extrahiert Felder (oder berechnet Werte) aus Werten für Datum und Uhrzeit und aus Intervallen.
Das Ergebnis lautet INTEGER für YEAR, MONTH, DAY, HOUR, MINUTE, DAYS, DAYOFYEAR, DAYOFWEEK, MONTHS, QUARTEROFYEAR, QUARTERS, WEEKS, WEEKOFYEAR und WEEKOFMONTH Auszüge, aber FLOAT für SECOND-Auszüge und BOOLEAN für ISLEAPYEAR-Auszüge. Falls Datum NULL ist, ist unabhängig vom Typ des extrahierten Feldes auch das Ergebnis NULL.
EXTRACT extrahiert einzelne Felder aus Werten für Datum und Uhrzeit und Intervallen. Sie können ein Feld nur extrahieren, wenn es in dem Wert für Datum und Uhrzeit, der im zweiten Parameter angegeben ist, vorhanden ist. Falls der Datentyp das angeforderte Feld nicht enthält, wird entweder ein Syntaxanalyse- oder Laufzeitfehler generiert.
Extrahiertes Feld | Beschreibung |
---|---|
YEAR | Jahr |
MONTH | Monat |
DAY | Tag |
HOUR | Stunde |
MINUTE | Minute |
SECOND | Sekunde |
DAYS | Tage zwischen dem 1. Januar 0001 und dem Datum. |
DAYOFYEAR | Tag des Jahres |
DAYOFWEEK | Wochentag: Sonntag = 1, Montag = 2, Dienstag = 3, Mittwoch = 4, Donnerstag = 5, Freitag = 6, Samstag = 7. |
MONTHS | Monate zwischen dem 1. Januar 0001 und dem Datum. |
QUARTEROFYEAR | Quartal: Januar bis März = 1, April bis Juni = 2, Juli bis September = 3, Oktober bis Dezember = 4. |
QUARTERS | Quartale zwischen dem 1. Januar 0001 und dem Datum. |
WEEKS | Wochen zwischen dem 1. Januar 0001 und dem Datum. |
WEEKOFYEAR | Woche des Jahres |
WEEKOFMONTH | Woche des Monats |
ISLEAPYEAR | Gibt an, ob es ein Schaltjahr ist |
EXTRACT(YEAR FROM CURRENT_DATE)und
EXTRACT(HOUR FROM LOCAL_TIMEZONE)werden fehlerfrei ausgeführt, aber
EXTRACT(DAY FROM CURRENT_TIME)schlägt fehl.
EXTRACT (DAYS FROM DATE '2000-02-29')berechnet die Anzahl der Tage ab dem Jahr 1 bis '2000-02-29' und
EXTRACT (DAYOFYEAR FROM CURRENT_DATE)berechnet die Anzahl der Tage ab dem Beginn des aktuellen Jahres, aber
EXTRACT (DAYOFYEAR FROM CURRENT_TIME)schlägt fehl, da CURRENT_TIME keine Datumsinformationen enthält.