Kategorien:

Datums- und Uhrzeitfunktionen

YEAR* / DAY* / WEEK* / MONTH / QUARTER

Extrahiert die entsprechende Datumskomponente aus einem Datum oder einem Zeitstempel.

Diese Funktionen sind Alternativen zur Verwendung der Funktion DATE_PART (oder EXTRACT) mit dem entsprechenden Datumsteil (siehe Unterstützte Datums- und Uhrzeitkomponenten).

Siehe auch:

HOUR / MINUTE / SECOND

Syntax

YEAR( <date_or_timestamp_expr> )

YEAROFWEEK( <date_or_timestamp_expr> )
YEAROFWEEKISO( <date_or_timestamp_expr> )

DAY( <date_or_timestamp_expr> )

DAYOFMONTH( <date_or_timestamp_expr> )
DAYOFWEEK( <date_or_timestamp_expr> )
DAYOFWEEKISO( <date_or_timestamp_expr> )
DAYOFYEAR( <date_or_timestamp_expr> )

WEEK( <date_or_timestamp_expr> )

WEEKOFYEAR( <date_or_timestamp_expr> )
WEEKISO( <date_or_timestamp_expr> )

MONTH( <date_or_timestamp_expr> )

QUARTER( <date_or_timestamp_expr> )
Copy

Argumente

date_or_timestamp_expr

Ein Datum oder ein Zeitstempel oder ein Ausdruck, der zu einem Datum oder einem Zeitstempel ausgewertet werden kann.

Rückgabewerte

Gibt einen Wert vom Typ NUMBER zurück.

Nutzungshinweise

Funktionsname

Datumskomponente, die aus dem Eingabedatum oder Zeitstempel extrahiert wurde

Mögliche Werte:

YEAR

Jahr

Jedes gültige Jahr (zum Beispiel 2025)

YEAROFWEEK [1]

Jahr, zu dem die extrahierte Woche gehört

Jedes gültige Jahr (zum Beispiel 2025)

YEAROFWEEKISO

Jahr, zu dem die extrahierte Woche gehört, unter Verwendung der ISO-Semantik

Jedes gültige Jahr (zum Beispiel 2025)

DAY , DAYOFMONTH

Tag (Zahl) des Monats

1 bis 31

DAYOFWEEK [1]

Tag (Zahl) der Woche

0 bis 7

DAYOFWEEKISO

Tag (Zahl) der Woche unter Verwendung der ISO-Semantik

1 bis 7

DAYOFYEAR

Tag (Zahl) des Jahres

1 bis 366

WEEK, WEEKOFYEAR [1]

Woche (Zahl) des Jahres

1 bis 54

WEEKISO

Woche (Zahl) des Jahres unter Verwendung der ISO-Semantik

1 bis 53

MONTH

Monat (Zahl) des Jahres

1 bis 12

QUARTER

Quartal (Zahl) des Jahres

1 bis 4

[1] Ergebnisse, die von den Werten für die Sitzungsparameter WEEK_OF_YEAR_POLICY und/oder WEEK_START vorgegeben werden.

Einzelheiten zur ISO-Semantik und zu den Parametern finden Sie unter Kalenderwochen und Wochentage.

Beispiele

Das folgende Beispiel demonstriert die Verwendung der Funktionen YEAR, QUARTER, MONTH, DAY, DAYOFWEEK und DAYOFYEAR:

SELECT '2025-04-11T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       YEAR(tstamp) AS "YEAR",
       QUARTER(tstamp) AS "QUARTER OF YEAR",
       MONTH(tstamp) AS "MONTH",
       DAY(tstamp) AS "DAY",
       DAYOFMONTH(tstamp) AS "DAY OF MONTH",
       DAYOFYEAR(tstamp) AS "DAY OF YEAR";
Copy
+-------------------------+------+-----------------+-------+-----+--------------+-------------+
| TSTAMP                  | YEAR | QUARTER OF YEAR | MONTH | DAY | DAY OF MONTH | DAY OF YEAR |
|-------------------------+------+-----------------+-------+-----+--------------+-------------|
| 2025-04-11 23:39:20.123 | 2025 |               2 |     4 |  11 |           11 |         101 |
+-------------------------+------+-----------------+-------+-----+--------------+-------------+

Das folgende Beispiel demonstriert die Verwendung der Funktionen WEEK, WEEKISO, WEEKOFYEAR, YEAROFWEEK und YEAROFWEEKISO. Der Sitzungsparameter WEEK_OF_YEAR_POLICY ist auf 1 eingestellt, sodass die erste Woche des Jahres die Woche ist, die den 1. Januar des Jahres enthält.

ALTER SESSION SET WEEK_OF_YEAR_POLICY = 1;
Copy
SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       WEEK(tstamp) AS "WEEK",
       WEEKISO(tstamp) AS "WEEK ISO",
       WEEKOFYEAR(tstamp) AS "WEEK OF YEAR",
       YEAROFWEEK(tstamp) AS "YEAR OF WEEK",
       YEAROFWEEKISO(tstamp) AS "YEAR OF WEEK ISO";
Copy
+-------------------------+------+----------+--------------+--------------+------------------+
| TSTAMP                  | WEEK | WEEK ISO | WEEK OF YEAR | YEAR OF WEEK | YEAR OF WEEK ISO |
|-------------------------+------+----------+--------------+--------------+------------------|
| 2016-01-02 23:39:20.123 |    1 |       53 |            1 |         2016 |             2015 |
+-------------------------+------+----------+--------------+--------------+------------------+

Das folgende Beispiel demonstriert auch die Verwendung der Funktionen WEEK, WEEKISO, WEEKOFYEAR, YEAROFWEEK und YEAROFWEEKISO. Der Sitzungsparameter WEEK_OF_YEAR_POLICY ist so eingestellt, dass die erste Woche des Jahres die erste Woche des Jahres ist, die mindestens vier Tage aus diesem Jahr enthält. In diesem Beispiel wird die Woche vom 27. Dezember 2015 bis zum 2. Januar 2016 als letzte Woche des Jahres 2015 betrachtet, nicht als erste Woche des Jahres 2016. Auch wenn die Woche Freitag, den 1. Januar 2016 enthält, liegt weniger als die Hälfte der Woche im Jahr 2016.

ALTER SESSION SET WEEK_OF_YEAR_POLICY = 0;
Copy
SELECT '2016-01-02T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       WEEK(tstamp) AS "WEEK",
       WEEKISO(tstamp) AS "WEEK ISO",
       WEEKOFYEAR(tstamp) AS "WEEK OF YEAR",
       YEAROFWEEK(tstamp) AS "YEAR OF WEEK",
       YEAROFWEEKISO(tstamp) AS "YEAR OF WEEK ISO";
Copy
+-------------------------+------+----------+--------------+--------------+------------------+
| TSTAMP                  | WEEK | WEEK ISO | WEEK OF YEAR | YEAR OF WEEK | YEAR OF WEEK ISO |
|-------------------------+------+----------+--------------+--------------+------------------|
| 2016-01-02 23:39:20.123 |   53 |       53 |           53 |         2015 |             2015 |
+-------------------------+------+----------+--------------+--------------+------------------+

Das folgende Beispiel demonstriert die Verwendung der Funktionen DAYOFWEEK und DAYOFWEEKISO. Der Sitzungsparameter WEEK_START gibt an, dass die Woche am Sonntag beginnt.

ALTER SESSION SET WEEK_START = 7;
Copy

Der Zeitstempel in der folgenden Abfrage bezieht sich auf den 5. April 2025, einen Samstag. Die Funktion DAYOFWEEK gibt 7 für Samstag zurück, da der erste Tag der Woche auf Sonntag eingestellt ist. Die Funktion DAYOFWEEKISO gibt 6 zurück, da der erste Tag der Woche in der ISO-Semantik der Montag ist. Weitere Informationen über die ISO-Semantik und den Parameter WEEK_START finden Sie unter Kalenderwochen und Wochentage.

SELECT '2025-04-05T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       DAYOFWEEK(tstamp) AS "DAY OF WEEK",
       DAYOFWEEKISO(tstamp) AS "DAY OF WEEK ISO";
Copy
+-------------------------+-------------+-----------------+
| TSTAMP                  | DAY OF WEEK | DAY OF WEEK ISO |
|-------------------------+-------------+-----------------|
| 2025-04-05 23:39:20.123 |           7 |               6 |
+-------------------------+-------------+-----------------+

Das folgende Beispiel demonstriert auch die Verwendung der Funktionen DAYOFWEEK und DAYOFWEEKISO. Der Sitzungsparameter WEEK_START gibt an, dass die Woche am Montag beginnt.

ALTER SESSION SET WEEK_START = 1;
Copy
SELECT '2025-04-05T23:39:20.123-07:00'::TIMESTAMP AS tstamp,
       DAYOFWEEK(tstamp) AS "DAY OF WEEK",
       DAYOFWEEKISO(tstamp) AS "DAY OF WEEK ISO";
Copy
+-------------------------+-------------+-----------------+
| TSTAMP                  | DAY OF WEEK | DAY OF WEEK ISO |
|-------------------------+-------------+-----------------|
| 2025-04-05 23:39:20.123 |           6 |               6 |
+-------------------------+-------------+-----------------+

Weitere Beispiele finden Sie unter Verwenden von Datums- und Zeitwerten.

Ausführlichere Beispiele für die wochenbezogenen Funktionen (DAYOFWEEK, WEEK, WEEKOFYEAR, YEAROFWEEK, und so weiter) finden Sie unter Kalenderwochen und Wochentage.