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_or_timestamp_expr> )
Copy
DATE_PART( <date_or_time_part> FROM <date_or_time_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

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

SELECT DATE_PART(quarter, '2024-04-08'::DATE);
Copy
+----------------------------------------+
| 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";
Copy
+-------------------------+----------------+
| 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";
Copy
+-------------------------+------------------------+
| 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";
Copy
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2024-04-08 23:39:20.123 |               1712619560123 |
+-------------------------+-----------------------------+