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_time_expr> )
Copy

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist NUMBER.

Nutzungshinweise

  • date_or_time_part muss einer der in Unterstützte Datums- und Uhrzeitkomponenten aufgeführten Werte sein.

    • 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_time_expr kann ein Datum, eine Uhrzeit oder ein Zeitstempel sein.

Beispiele

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

SELECT DATE_PART(QUARTER, '2013-05-08'::DATE);
+----------------------------------------+
| DATE_PART(QUARTER, '2013-05-08'::DATE) |
|----------------------------------------|
|                                      2 |
+----------------------------------------+
Copy

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

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

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('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(EPOCH_SECOND, "TIME_STAMP1") AS "EXTRACTED EPOCH SECOND";
+-------------------------+------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH SECOND |
|-------------------------+------------------------|
| 2013-05-08 23:39:20.123 |             1368056360 |
+-------------------------+------------------------+
Copy

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('2013-05-08T23:39:20.123-07:00') AS "TIME_STAMP1",
         DATE_PART(EPOCH_MILLISECOND, "TIME_STAMP1") AS "EXTRACTED EPOCH MILLISECOND";
+-------------------------+-----------------------------+
| TIME_STAMP1             | EXTRACTED EPOCH MILLISECOND |
|-------------------------+-----------------------------|
| 2013-05-08 23:39:20.123 |               1368056360123 |
+-------------------------+-----------------------------+
Copy