Нужно построить график регистраций по часам из таблицы users(created_at), где created_at типа timestamp. Какой бакет лучше использовать?

ADATE_TRUNC('day', created_at)
BDATE_TRUNC('hour', created_at)
CDATE_TRUNC('minute', created_at)
DEXTRACT(HOUR FROM created_at)
Правильный ответ. Часовой бакет делается через DATE_TRUNC('hour', ...), чтобы сохранить и дату, и час.

Разбор

Если извлечь только час через EXTRACT(HOUR FROM created_at), вы потеряете дату и смешаете разные дни в один и тот же час. DATE_TRUNC('hour', created_at) сохраняет дату и обнуляет минуты/секунды, создавая корректные часовые бакеты.

Проверь себя · 1/3разбор после ответа
Для сравнения метрик по неделям нужно получить начало предыдущей недели. Какое выражение вернёт начало предыдущей недели относительно current_date?
Тренировать SQL в Telegram

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