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

DATE_PART

Аналог в MySQL:

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

PostgreSQL 17.5
DATE_PART(field, source)

Параметры

fieldtext
Название части в виде строки
Значения:'century''day''decade''dow''doy''epoch''hour''isodow''isoyear''julian''microseconds''millennium''milliseconds''minute''month''quarter''second''timezone''timezone_hour''timezone_minute''week''year'
sourcetimestamp | interval
Дата, время или интервал

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

Дробное число (double precision), например 2023 для year

Примеры

Год из даты

PostgreSQL 17.5
SELECT DATE_PART('year', TIMESTAMP '2023-01-01');
date_part
2023

Воскресенье как день недели 0

PostgreSQL 17.5
SELECT DATE_PART('dow', DATE '2024-03-10');
date_part
0

Число платежей по кварталам

PostgreSQL 17.5
SELECT DATE_PART('quarter', date) AS quarter,
	COUNT(*) AS payments
FROM Payments
GROUP BY quarter
ORDER BY quarter;
quarterpayments
19
29
36
44

Подробности

В отличие от EXTRACT, который возвращает numeric, здесь возможна потеря точности.

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

'week' — номер недели по ISO: неделя начинается с понедельника, а первые дни января могут относиться к последней неделе прошлого года. Поэтому номер недели берут вместе с 'isoyear', а не с 'year': для 2021-01-01 неделя 53, а ISO-год 2020.

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