Вступить в клуб →
средняявопросSQL и проверка данных

Отчёт за март по BETWEEN расходится с интерфейсом на сотни платежей

Сверяете число платежей за март: в интерфейсе 12 480, ваш запрос к базе даёт 12 156. Фильтры по статусу в интерфейсе и в запросе одинаковые.

Запрос:

SELECT count(*) FROM payments
WHERE created_at BETWEEN '2026-03-01' AND '2026-03-31';

Поле created_at имеет тип timestamp.

В чём причина расхождения?

  • BETWEEN не включает границы диапазона, поэтому теряются платежи за 1 и 31 марта
  • Дата без времени трактуется как полночь, поэтому платежи 31 марта позже 00:00:00 не попали в выборку
  • BETWEEN нельзя применять к полям типа timestamp, допустимы только операторы сравнения
  • Расхождение объясняется часовым поясом пользователя в интерфейсе и к тексту проверочного запроса отношения не имеет

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела