Kategorien:

Datums- und Uhrzeitfunktionen

EXTRACT

Extracts the specified date or time part from a date, interval, time, or timestamp.

Tipp

Um das Datum aus einem Zeitstempel zu extrahieren, verwenden Sie die Funktion TO_DATE.

Alternativen:

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

Syntax

EXTRACT( <date_or_time_part> FROM <date_interval_time_or_timestamp_expr> )
EXTRACT( <date_or_time_part> , <date_interval_time_or_timestamp_expr> )

Argumente

date_or_time_part

The unit of time. Must be one of the values listed in Unterstützte Datums- und Uhrzeitkomponenten (for example, month). The value can be a string literal or can be unquoted (for example, 'month' or 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 Informationen, einschließlich Beispiele, finden Sie unter Kalenderwochen und Wochentage.

date_interval_time_or_timestamp_expr

A date, an interval, a time, or a timestamp, or an expression that can be evaluated to one of those data types.

Rückgabewerte

Gibt einen Wert vom Datentyp NUMBER zurück.

Nutzungshinweise

  • When date_interval_time_or_timestamp_expr is a year-month interval value, the supported date_or_time_part values are year and month.

  • When date_interval_time_or_timestamp_expr is a day-time interval value, the supported date_or_time_part values are day, hour, minute, second, and nanosecond.

  • Currently, when date_interval_time_or_timestamp_expr is a DATE value, the following date_or_time_part values aren’t supported:

    • 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;
+------+
| 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;
+-----------+
| 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.