Kategorien:

Datums- und Uhrzeitfunktionen

EXTRACT

Extrahiert die angegebene Datums- oder Zeitkomponente aus einem Datum, einer Uhrzeit oder einem Zeitstempel.

Alternativen:

DATE_PART, HOUR / MINUTE / SECOND, YEAR* / DAY* / WEEK* / MONTH / QUARTER

Syntax

EXTRACT( <date_or_time_part> FROM <date_or_time_expr> )
Copy
EXTRACT( <date_or_time_part> , <date_or_timestamp_expr> )
Copy

Argumente

date_or_time_part

Die Maßeinheit für die Zeit. Muss einer der unter Unterstützte Datums- und Uhrzeitkomponenten aufgeführten Werte sein (z. B. month). Der Wert kann ein Zeichenfolgenliteral oder ohne Anführungszeichen sein (z. B. 'month' oder month).

  • Wenn date_or_time_part den Wert week (oder eine seiner Varianten) hat, wird die Ausgabe vom Sitzungsparameter WEEK_START gesteuert.

  • Wenn date_or_time_part den Wert dayofweek oder yearofweek (oder eine seiner Varianten) hat, wird die Ausgabe durch die Sitzungsparameter WEEK_OF_YEAR_POLICY und WEEK_START gesteuert.

Weitere Details einschließlich Beispielen finden Sie unter Kalenderwochen und Wochentage.

date_or_timestamp_expr

Ein Datum, eine Uhrzeit, ein Zeitstempel oder ein Ausdruck, das bzw. der sich zu einem Datum, einer Uhrzeit oder einem Zeitstempel auswerten lässt.

Rückgabewerte

Gibt einen Wert vom Datentyp NUMBER zurück.

Nutzungshinweise

Wenn date_or_timestamp_expr ein DATE-Wert ist, werden die folgenden date_or_time_part-Werte derzeit nicht unterstützt:

  • epoch_millisecond

  • epoch_microsecond

  • epoch_nanosecond

Andere Datums- und Zeitangaben (einschließlich epoch_second) werden unterstützt.

Beispiele

Angeben des year-Teils, um das Jahr aus einem Zeitstempel zu extrahieren:

SELECT EXTRACT(year FROM TO_TIMESTAMP('2024-04-10T23:39:20.123-07:00')) AS YEAR;
Copy
+------+
| YEAR |
|------|
| 2024 |
+------+

Verwenden von EXTRACT mit der Funktion DECODE und dem Teil dayofweek, um den vollständigen Namen des aktuellen Wochentags zurückzugeben:

SELECT DECODE(EXTRACT(dayofweek FROM SYSTIMESTAMP()),
  1, 'Monday',
  2, 'Tuesday',
  3, 'Wednesday',
  4, 'Thursday',
  5, 'Friday',
  6, 'Saturday',
  7, 'Sunday') AS DAYOFWEEK;
Copy
+-----------+
| DAYOFWEEK |
|-----------|
| Thursday  |
+-----------+

Bemerkung

Die Ausgabe hängt von dem Wert ab, der von der Funktion SYSTIMESTAMP zurückgegeben wird, wenn Sie die Abfrage ausführen. Sie können auch die Funktion DAYNAME verwenden, um den Namen des Wochentages mit drei Buchstaben aus dem angegebenen Datum oder Zeitstempel zu extrahieren.