Справочник по функциям

EXTRACT

Возвращает указанную часть даты, времени или интервала.

PostgreSQL 17.9
EXTRACT(field FROM source)
field
Нужная часть — ключевое слово без кавычек
Ключевое слово
CENTURYDAYDECADEDOWDOYEPOCHHOURISODOWISOYEARJULIANMICROSECONDSMILLENNIUMMILLISECONDSMINUTEMONTHQUARTERSECONDTIMEZONETIMEZONE_HOURTIMEZONE_MINUTEWEEKYEAR
FROM source
Дата, время или интервал
timestamp | interval

Возвращаемое значение

Число (numeric), например 3 для MONTH; для SECOND — с дробной частью; EPOCH для даты — секунды с 1970-01-01 00:00 UTC, для интервала — его длительность в секундах

Примеры

Год из даты

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

Год рождения из таблицы

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

Секунды в интервале

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

DOW и ISODOW для воскресенья

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

Неделя и ISO-год на стыке лет

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

Подробности

Это запись из стандарта SQL — DATE_PART делает то же самое, но возвращает double precision.

День недели: DOW даёт 0 для воскресенья и 6 для субботы, а ISODOW — от 1 для понедельника до 7 для воскресенья. В MySQL DAYOFWEEK считает иначе: воскресенье — 1, суббота — 7.

WEEK — номер недели по ISO: неделя начинается с понедельника, а первые дни января могут относиться к последней неделе прошлого года. Поэтому номер недели берут вместе с ISOYEAR, а не с YEAR.

Смотрите также

Где изучить