Нужно выбрать заказы за декабрь 2025 из таблицы заказов по полю created_at с временем. Какой фильтр надёжнее задаёт диапазон «весь месяц» без потерь по краям?

AWHERE created_at = '2025-12-01' OR created_at = '2025-12-31'
BWHERE created_at >= '2025-12-01' AND created_at < '2026-01-01'
CWHERE created_at > '2025-12-01' AND created_at < '2025-12-31'
DWHERE created_at <= '2025-12-31' AND created_at >= '2025-12-15'
Правильный ответ. Для «целого периода» удобно использовать полуинтервал: >= начало и < следующий период.

Разбор

Фильтр created_at >= '2025-12-01' AND created_at < '2026-01-01' захватывает все значения внутри декабря, включая время внутри дня (если created_at содержит время). Варианты с = или <= обычно либо слишком узкие, либо могут некорректно обработать время в конце дня. Вариант со строгими неравенствами теряет границы месяца — первое и последнее число.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Основы SQL-запросов»