【发布时间】:2016-10-20 02:12:20
【问题描述】:
我有一张桌子,里面放着一堆书。客户可以在一天中的任何时间预约。我想确保不存在与新预订冲突的预订。
所以我想查找该日期的预订并检查开始时间和结束时间是否重叠。我尝试使用子选择查询来获取当天的预订,然后查看这些时间是否重叠,但它似乎没有工作。
这是我正在使用的查询。 (状态和活动是我需要的其他一些领域)。我找到相关日期,然后查看上午 8 点是否在这些结果之间,个别开始/结束时间或上午 9.40 是否也在开始/结束时间之间。
SELECT event_date, starttime, endtime, status, active
FROM (SELECT event_date, starttime, endtime, status, active FROM bookings WHERE event_date='2013-07-21' AND status != 'cancelled' AND active !=0 LIMIT 1) AS q1
WHERE ('8:00:00' BETWEEN q1.starttime AND q1.endtime) AND ('9:40:00' BETWEEN q1.starttime AND q1.endtime)
这是最好的使用方法吗?谢谢
【问题讨论】: