Kategorien:

Datums- und Uhrzeitfunktionen

DATE_PART

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

Alternativen:

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

Syntax

DATE_PART( <date_or_time_part> , <date_interval_time_or_timestamp_expr> )
DATE_PART( <date_or_time_part> FROM <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.

Tipp

Um den vollständigen DATE- oder TIME-Wert anstelle eines Teils eines TIMESTAMP-Werts zu extrahieren, können Sie den TIMESTAMP-Wert entsprechend in einen DATE- oder TIME-Wert umwandeln. Beispiel:

SELECT '2025-04-08T23:39:20.123-07:00'::TIMESTAMP::DATE AS full_date_value;
+-----------------+
| FULL_DATE_VALUE |
|-----------------|
| 2025-04-08      |
+-----------------+
SELECT '2025-04-08T23:39:20.123-07:00'::TIMESTAMP::TIME AS full_time_value;
+-----------------+
| FULL_TIME_VALUE |
|-----------------|
| 23:39:20        |
+-----------------+

Beispiele

Dies ist ein einfaches Beispiel für das Extrahieren eines Teils von DATE:

SELECT DATE_PART(quarter, '2024-04-08'::DATE);
+----------------------------------------+
| DATE_PART(QUARTER, '2024-04-08'::DATE) |
|----------------------------------------|
|                                      2 |
+----------------------------------------+

Dies ist ein Beispiel für das Extrahieren eines Teils von TIMESTAMP:

SELECT TO_TIMESTAMP(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(year, "TIME_STAMP1") AS "EXTRACTED YEAR";
+-------------------------+----------------+
| TIME_STAMP1             | EXTRACTED YEAR |
|-------------------------+----------------|
| 2024-04-08 23:39:20.123 |           2024 |
+-------------------------+----------------+

Dies ist ein Beispiel für das Konvertieren von TIMESTAMP in die Anzahl der Sekunden seit Beginn der Unix-Epoche (Mitternacht, 1. Januar 1970):

SELECT TO_TIMESTAMP(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(epoch_second, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
+-------------------------+------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2024-04-08 23:39:20.123 |             1712619560 |
+-------------------------+------------------------+

Dies ist ein Beispiel für das Konvertieren von TIMESTAMP in die Anzahl der Millisekunden seit Beginn der Unix-Epoche (Mitternacht, 1. Januar 1970):

SELECT TO_TIMESTAMP(
  '2024-04-08T23:39:20.123-07:00') AS "TIME_STAMP1",
  DATE_PART(epoch_millisecond, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2024-04-08 23:39:20.123 |               1712619560123 |
+-------------------------+-----------------------------+