В проекте есть функционал, который позволяет вам забронировать место в течение дня, им нужно ввести день, время начала и время окончания с 7:00 до 12:00 (полночь) или 1:00. Например, если кто-то введет дату = 21 / октябрь / 2011 время начала = 20:00 и время окончания 12:00 (он бронирует место с 20:00 до 12:00), веб-форма отправляется в процедуру хранения 20:00 и 00:00, чтобы проверить таблицу, чтобы увидеть, есть ли в наличии, если кто-то уже заказал в тот же день до полуночи, это магазин, как это
startime = 23: 00 endtime = 00: 00
, поэтому, когда я проверяю нового клиента, он должен вернуть, что резервирование уже в диапазоне времени,
мой запрос не эффективен, но он работает с 7:00 до 23:00, он не работает, когда из webfrom входит в конечное время 12:00 (00:00 по sql), потому что время начала больше, чем время окончания
это мой запрос
select COUNT(*)
from table1
where id_place=@id_place
and date=@date
and (
(@start_time=res_start_time and @end_time=res_end_time)
or (@start_time > res_start_time and @start_time < res_end_time)
or (@end_time > res_start_time and res_end_time < res_end_time)
or (res_start_time > @start_time and res_start_time < @end_time)
or (res_end_time > @start_time and res_end_time < @end_time)
or (res_start_time < @start_time and res_end_time >@end_time)
)
-- @start_time = start time of the reservations (from webform)
-- @end_time = end time of the reservations (from webform)
-- res_start_time= represents the start time column
-- res_ebd_time= represents the end time column
Мне нужна помощь по двум вещам: как я решил проблему, когда мне нужно проверить время, такое как 12:00 или 1:00, которое уже есть в таблице, как пример в начале вопроса, и проверить мой запрос, потому что думаю, что должно быть лучшее решение для реализации такого рода функциональности