получить строку временного интервала с заданного времени в mysql

У меня есть таблица time_slots, содержащая строки start_time и end_time.

данные

id start_time       end_time
1  10:00:00         15:00:00 
2  15:00:00         22:00:00 
3  22:00:00         10:00:00 

Я использую запрос, который отлично работает для двух верхних столбцов

SELECT * FROM time_slots WHERE '18:00:00' BETWEEN start_time AND end_time

но когда я попытался получить строку из 3-й строки, это дало мне пустой результат.


person user3668983    schedule 23.05.2014    source источник
comment
Это потому, что ваш mysql не знает, к какой дате принадлежит 22:00:00, а к какой дате принадлежит 10:00:00, и поэтому не может определить, к какой дате принадлежит 18:00:00.   -  person Abhik Chakraborty    schedule 23.05.2014


Ответы (1)


Что ж,

22:00 больше, чем 10:00. Итак, ваше предложение where выполняется отлично.

Я понимаю вашу проблему, но я не знаю, как это исправить в T-SQL... :)

Я могу придумать одно исправление, чтобы изменить поля TIME на DATETIME; команда BETWEEN может работать с этими значениями

person Samjongenelen    schedule 23.05.2014