Колонка created_at типа timestamptz. Таймзона сессии (TimeZone) может отличаться между задачами. Как гарантированно сгруппировать события по UTC-дням?

ADATE_TRUNC('day', created_at)
BDATE_TRUNC('day', created_at::timestamp)
CDATE_TRUNC('day', created_at AT TIME ZONE 'Europe/Moscow')
DDATE_TRUNC('day', created_at AT TIME ZONE 'UTC')
Правильный ответ. Для стабильных UTC-бакетов на timestamptz явно переводите время в UTC перед DATE_TRUNC.

Разбор

Операции над timestamptz могут зависеть от таймзоны сессии. Если отчёт должен считать дни строго по UTC, сначала приведите момент времени к UTC через created_at AT TIME ZONE 'UTC', затем применяйте DATE_TRUNC('day', ...).

Проверь себя · 1/3разбор после ответа
Нужно получить колонку event_date типа date из created_at (тип timestamp) для JOIN с календарной таблицей по дате. Какое выражение подойдёт лучше всего?
Тренировать SQL в Telegram

Ещё вопросы по теме «Даты и время»