Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему этот запрос выбирает только одну строку?

ghjktyu fghjvbnm Ученик (79), закрыт 2 года назад
Запрос: SELECT * FROM `ratings` WHERE `time` >= '2021-05-03' and `time` <= '2021-05-04'
Выбирает только строку со временем: 2021-05-03 22:00:46, а 2021-05-04 22:00:46 почему-то пропускает
Лучший ответ
Dr. Ливси Гений (53852) 2 года назад
Подозреваю что событие 2021-05-04 22:00:46 лежит за пределами меньше равно '2021-05-04', так как в него попадут события до '2021-05-04 00:00:00' не включая события этих суток. Поставьте диапазон:
and `time` < '2021-05-05'
и проверьте
Sergey V. VoroninИскусственный Интеллект (267784) 2 года назад
строго <
Dr. Ливси Гений (53852) Sergey V. Voronin, да. Точно. Строго меньше
Остальные ответы
Jurijus Zaksas Искусственный Интеллект (425074) 2 года назад
Потому что ты думаешь, что он обрубит событие до даты и сравнит.
А он не обрубает, он добавляет (!) время - полночь - и сравнивает. А твое событие произошло уже после полуночи, такие дела.
Ярослав Мастер (1817) 2 года назад
суть проблемы здесь уже описали, со своей стороны опишу альтернативный вариант её решения:

SELECT * FROM `ratings` WHERE DATE(`time`) >= '2021-05-03' AND DATE(`time`) <= '2021-05-04'

из колонки с данными мы автоматически получаем только дату, дальнейшее сравнение производится с ней
Похожие вопросы