DATE_TRUNC()
PostgreSQLУсекает дату/время до указанной точности. Незаменима для группировки по периодам.
Синтаксис
DATE_TRUNC(field, date) Поля: microseconds, milliseconds, second, minute, hour, day, week, month, quarter, year
Примеры
Начало месяца
SELECT DATE_TRUNC('month', NOW());→ 2026-04-01 00:00:00+03
Продажи по месяцам
SELECT DATE_TRUNC('month', created_at) AS month, SUM(amount)
FROM orders
GROUP BY month
ORDER BY month;Начало недели
SELECT DATE_TRUNC('week', CURRENT_DATE);→ 2026-04-07
Важно знать
- ⚠Неделя начинается с понедельника.
- ⚠Возвращает timestamp, не date — приведите при необходимости.