Функция DATE_TRUNC
в PostgreSQL используется для усечения даты или временной метки до указанного уровня. Это позволяет округлять значения даты и времени к ближайшему началу указанного периода.
Синтаксис
DATE_TRUNC('период', timestamp)
Аргументы
период
– строка, указывающая уровень усечения (например, ‘year’, ‘month’, ‘day’, ‘hour’, ‘minute’).timestamp
– дата или временная метка, которую требуется усечь.
Примеры использования
Усечение до начала года
SELECT DATE_TRUNC('year', TIMESTAMP '2024-03-05 14:23:45');
Результат:
2024-01-01 00:00:00
Усечение до начала месяца
SELECT DATE_TRUNC('month', TIMESTAMP '2024-03-05 14:23:45');
Результат:
2024-03-01 00:00:00
Усечение до часа
SELECT DATE_TRUNC('hour', TIMESTAMP '2024-03-05 14:23:45');
Результат:
2024-03-05 14:00:00
Усечение до минут
SELECT DATE_TRUNC('minute', TIMESTAMP '2024-03-05 14:23:45');
Результат:
2024-03-05 14:23:00
Особенности
- Функция
DATE_TRUNC
полезна при группировке данных по временным интервалам. - Возвращает значение типа
TIMESTAMP
. - Учитывает временную зону текущей сессии.