- Kategorien:
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:
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> )
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";
+-------------------------+------+-----------------+-------+-----+--------------+-------------+
| 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;
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";
+-------------------------+------+----------+--------------+--------------+------------------+
| 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;
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";
+-------------------------+------+----------+--------------+--------------+------------------+
| 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;
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";
+-------------------------+-------------+-----------------+
| 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;
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";
+-------------------------+-------------+-----------------+
| 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.