DATE_TRUNC в PostgreSQL: усечение даты до указанного уровня

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