Задать вопрос
Tkreks
@Tkreks
Системный инженер

Mysql запрос не возвращает результат, хотя условия выполняются?

Всем здравствуйте!
Есть таблица
Структура
6690e5de47457160894664.png

Я выполняю простейший запрос, который задействует 2 поля - DATE_FROM и DATE_TO (у обоих полей тип DATETIME)
В таблице заполнены тестовые данные -
Все данные таблицы
6690e6cf13300162563700.png

Есть данные
DATE_FROM = 2024-07-13 17:31:00 и DATE_TO = 2024-07-16 17:31:00
Далее я делаю запрос
SELECT
	*
FROM
	b_calendar_resource
WHERE
	b_calendar_resource.DATE_FROM <= '2024-07-13' AND
	b_calendar_resource.DATE_TO >= '2024-07-13'

Т.е. мне нужно найти записи с определенной датой, время в этом случае роли не играет, но изменить тип поля на date нельзя.
и получаю пустой результат.
6690e90c62402198439770.png
Но если я сдвину дату допустим на 2024-07-14 и делаю такой запрос -
SELECT
	*
FROM
	b_calendar_resource
WHERE
	b_calendar_resource.DATE_FROM <= '2024-07-14' AND
	b_calendar_resource.DATE_TO >= '2024-07-14'

То тут уже нахожу вхождение в дату
6690ea03550cb924182329.png
Пара вопросов - почему такое происходит?
Можно ли оптимизировать запрос, чтобы искать все вхождения даты в этих полях искались, например через between ?
  • Вопрос задан
  • 143 просмотра
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
WHERE
  b_calendar_resource.DATE_FROM <= '2024-07-13' + INTERVAL 1 DAY AND
  b_calendar_resource.DATE_TO >= '2024-07-13'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы