Проверка MySQL, если время в течение полуночи - PullRequest
2 голосов
/ 21 июня 2010

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

Бывший пользователь может ввести «13:00» или «13: 00-16: 00»
в базе есть записи типа так:

id    startTime    endTime  
1     08:00        12:00  
2     20:00        03:00  
3     14:00        01:00  
4     16:00        21:00  

Поиск достаточно прост по временному интервалу, который составляет один день (startTime

UPDATE:
Промежуток времени никогда не будет больше 24 часов, поэтому startTime из 1 и endTime из 3 всегда будут элементом 2 часа, а не элементом 26 часа.

Причина, по которой я не использую даты, связана с тем, что они более или менее похожи на рабочие часы (но не совсем на тот случай использования). Элементы, представленные в интервалах, имеют ежедневные часы, поэтому не стоит добавлять метки даты и времени на каждый день.

1 Ответ

3 голосов
/ 21 июня 2010

Я бы проверил, если endTime

  1. общее время = время начала + (24 часа - время окончания)

Проблема, с которой я сталкиваюсь, заключается в том, что endTime следующий день и endTime> startTime Например, вы начинаете в полдень и заканчиваете в 13:00 на следующий день. Существует также проблема, если время охватывает более 2 дней. Например, начните в день 1 и закончите день 3 или дольше. Я бы порекомендовал использовать даты.

...