Выбор ответа Middle SQL для аналитика обновлено
Граница периода по timestamp
Вопрос
Колонка created_at типа timestamp. Нужны заказы за март 2026. Какое условие надёжно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: createdat = '2026-03-01' AND createdat < '2026-04-01'. BETWEEN включает границы, но '2026-03-31' это полночь 31 марта, и весь последний день, кроме полуночи, потеряется.
Варианты ответа
- created_at <= '2026-03-31'
- to_char(created_at, 'MM') = '03'
- created_at BETWEEN '2026-03-01' AND '2026-03-31'
- created_at >= '2026-03-01' AND created_at < '2026-04-01'правильный ответ
Разбор
BETWEEN включает границы, но '2026-03-31' это полночь 31 марта, и весь последний день, кроме полуночи, потеряется. Полуоткрытый интервал [1 марта, 1 апреля) работает для любых типов времени. Только верхняя граница захватывает всю историю до марта. to_char по месяцу возьмёт март всех лет и не использует индекс.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.