Отчёт за март по 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, допустимы только операторы сравнения
- Расхождение объясняется часовым поясом пользователя в интерфейсе и к тексту проверочного запроса отношения не имеет
