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--(--+-YEAR----------+--FROM--Datum--)--------------->< +-MONTH---------+ +-DAY-----------+ +-HOUR----------+ +-MINUTE--------+ +-SECOND--------+ +-DAYS----------+ +-DAYOFYEAR-----+ +-DAYOFWEEK-----+ +-MONTHS--------+ +-QUARTEROFYEAR-+ +-QUARTERS------+ +-WEEKS---------+ +-WEEKOFYEAR----+ +-WEEKOFMONTH---+ '-ISLEAPYEAR----'
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' undEXTRACT (DAYOFYEAR FROM CURRENT_DATE)
berechnet die Anzahl der Tage ab dem Beginn des aktuellen Jahres, aberEXTRACT (DAYOFYEAR FROM CURRENT_TIME)
schlägt fehl, da CURRENT_TIME keine Datumsinformationen enthält.