Сравнение временного диапазона в MySQL

0

У меня есть три столбца startTime и EndTime как тип данных времени и сумма как int. Я хочу сравнить время, если 10:00:00 находится между startTime и Endtime, он должен вернуть сумму в этом диапазоне

Мой startTime - 08:00:00, а endTime - 14:00:00

Я старался

SELECT amount
  from table 
 where startTime >='10:00:00' 
   AND endTime <='10:00:00' 

Но это не работает, я даже пробовал CAST как время, это тоже не сработало.

Я пробовал смотреть на другой пост, но ни одно из предложенных решений не работало.

  • 0
    Возможный дубликат: вычисления-разности-двух-дат-времен-в-тайне
  • 0
    Я не думаю, что этот пост должен найти разницу между двумя datetime, я спрашиваю о сравнении с TIME как типом данных.
Показать ещё 3 комментария
Теги:

1 ответ

-2
Лучший ответ

Если вы хотите, чтобы " '10:00:00' находилось между начальным и конечным временем, вы получили неправильные отношения, потому что " '10:00:00' должно быть после времени начала и до окончания времени:

SELECT amount from table where startTime <='10:00:00' AND endTime >='10:00:00' 
  • 0
    Спасибо, но я немного запутался в коде, который вы написали вроде как работает, но если startTime - 23:00:00, endTime - 02:00:00, а время для сравнения - 00:00:00, все равно ничего не возвращается. В противном случае в приведенном выше примере ваш код работает. Извините за плохой английский
  • 0
    Он не должен ничего возвращать, потому что ваше конечное время раньше, чем начальное время, что испортило логику. Вам нужна дата, чтобы указать, что ваше время окончания позже, чем время начала, и использовать 24 часа вместо 0.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню