SQL Academy
Premium
Funktionsreferenz

EXTRACT

Gibt den angegebenen Teil eines Datums, einer Uhrzeit oder eines Intervalls zurück.

PostgreSQL 17.9
EXTRACT(field FROM source)
field
Gewünschter Teil als Schlüsselwort ohne Anführungszeichen
Schlüsselwort
CENTURYDAYDECADEDOWDOYEPOCHHOURISODOWISOYEARJULIANMICROSECONDSMILLENNIUMMILLISECONDSMINUTEMONTHQUARTERSECONDTIMEZONETIMEZONE_HOURTIMEZONE_MINUTEWEEKYEAR
FROM source
Datum, Uhrzeit oder Intervall
timestamp | interval

Rückgabewert

Zahl (numeric), zum Beispiel 3 für MONTH; bei SECOND mit Nachkommastellen; EPOCH gibt für ein Datum die Sekunden seit 1970-01-01 00:00 UTC und für ein Intervall seine Länge in Sekunden

Beispiele

Jahr aus einem Datum

PostgreSQL 17.9
SELECT EXTRACT(
		YEAR
		FROM TIMESTAMP '2023-01-01'
	);
extract
2023

Geburtsjahr aus einer Tabelle

PostgreSQL 17.9
SELECT member_name,
	EXTRACT(
		YEAR
		FROM birthday
	) AS birth_year
FROM FamilyMembers;
member_namebirth_year
Headley Quincey1960
Flavia Quincey1963
Andie Quincey1983
Lela Quincey1985
Annie Quincey1988
Ernest Forrest1961
Constance Forrest1968
Wednesday Addams2005

Sekunden in einem Intervall

PostgreSQL 17.9
SELECT EXTRACT(
		EPOCH
		FROM INTERVAL '1 day 2 hours'
	);
extract
93600.000000

DOW und ISODOW für einen Sonntag

PostgreSQL 17.9
SELECT EXTRACT(
		DOW
		FROM DATE '2024-03-10'
	) AS dow,
	EXTRACT(
		ISODOW
		FROM DATE '2024-03-10'
	) AS isodow;
dowisodow
07

Woche und ISO-Jahr am Jahreswechsel

PostgreSQL 17.9
SELECT EXTRACT(
		WEEK
		FROM DATE '2021-01-01'
	) AS week,
	EXTRACT(
		ISOYEAR
		FROM DATE '2021-01-01'
	) AS iso_year,
	EXTRACT(
		YEAR
		FROM DATE '2021-01-01'
	) AS year;
weekiso_yearyear
5320202021

Details

Das ist die Schreibweise aus dem SQL-Standard; DATE_PART macht dasselbe, gibt aber double precision zurück.

Wochentag: DOW gibt 0 für Sonntag und 6 für Samstag, ISODOW geht von 1 für Montag bis 7 für Sonntag. DAYOFWEEK in MySQL zählt anders: Sonntag ist 1, Samstag ist 7.

WEEK ist die ISO-Wochennummer: Eine Woche beginnt am Montag, und die ersten Januartage können zur letzten Woche des Vorjahres gehören. Deshalb verwendest du die Wochennummer zusammen mit ISOYEAR, nicht mit YEAR.

Siehe auch

Wo du es lernst