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');Воскресенье как день недели 0
PostgreSQL 17.5
SELECT DATE_PART('dow', DATE '2024-03-10');Число платежей по кварталам
PostgreSQL 17.5
SELECT DATE_PART('quarter', date) AS quarter,
COUNT(*) AS payments
FROM Payments
GROUP BY quarter
ORDER BY quarter;Подробности
В отличие от EXTRACT, который возвращает numeric, здесь возможна потеря точности.
День недели: 'dow' даёт 0 для воскресенья и 6 для субботы, а 'isodow' — от 1 для понедельника до 7 для воскресенья. В MySQL DAYOFWEEK считает иначе: воскресенье — 1, суббота — 7.
'week' — номер недели по ISO: неделя начинается с понедельника, а первые дни января могут относиться к последней неделе прошлого года. Поэтому номер недели берут вместе с 'isoyear', а не с 'year': для 2021-01-01 неделя 53, а ISO-год 2020.