Функция DATE_PART
в PostgreSQL используется для получения отдельной части даты или времени, например года, месяца, дня, часа и т. д.
Синтаксис
DATE_PART('поле', дата)
поле
— строка, указывающая, какую часть даты или времени необходимо извлечь.дата
— значение типаDATE
,TIMESTAMP
илиINTERVAL
.
Примеры использования
Извлечение года из даты
SELECT DATE_PART('year', DATE '2024-03-05');
Результат:
2024
Извлечение месяца из даты
SELECT DATE_PART('month', TIMESTAMP '2024-03-05 14:23:45');
Результат:
3
Извлечение дня из временной метки
SELECT DATE_PART('day', TIMESTAMP '2024-03-05 14:23:45');
Результат:
5
Извлечение часов и минут
SELECT DATE_PART('hour', TIMESTAMP '2024-03-05 14:23:45');
SELECT DATE_PART('minute', TIMESTAMP '2024-03-05 14:23:45');
Результат:
14
23
Извлечение секунд из интервала
SELECT DATE_PART('second', INTERVAL '2 hours 30 minutes 15.75 seconds');
Результат:
15.75
Поддерживаемые значения для поле
year
— годmonth
— месяцday
— деньhour
— часminute
— минутаsecond
— секундаquarter
— кварталweek
— номер недели в годуdow
— день недели (0 = воскресенье, 1 = понедельник и т. д.)doy
— день в году (1-365 или 1-366 для високосного года)epoch
— количество секунд с 1970-01-01 00:00:00 UTC
Особенности
- Работает как с датами (
DATE
), так и с временными метками (TIMESTAMP
,TIMESTAMPTZ
) и интервалами (INTERVAL
). - Для дней недели (
dow
) используется нумерация от 0 (воскресенье) до 6 (суббота). - Альтернативой может быть функция
EXTRACT()
, выполняющая аналогичные операции.