Функция 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. - Учитывает временную зону текущей сессии.