MySql时间范围计数查询 -

时间:2018-04-07 11:54:14

标签: mysql

我需要一个验证查询,当有人被预订停车位时,特别是另一个人不应该在两个时间之间预订.....我有下表:

我的查询是

    SELECT count(*)
    FROM managebooking
    WHERE Time(BookingTimeFrom) AND Time(BookingTimeTo) 
                             BETWEEN '11:00' AND 02:00' 

请帮助我任何人。谢谢!

[1]:https://i.stack.imgur.com/Badpw.png enter image description here

1 个答案:

答案 0 :(得分:-1)

以下查询将检查某一天的当前预订时间是否存在冲突。我们之间不能使用,因为两者之间是包容性的,我们允许相邻的预订。例如;如果现有预订从上午8点到9点,那么我们可以允许从9点开始另一个预订。另外,包括准确度的秒数。这是一个demo_: http://sqlfiddle.com/#!9/d09c9/63

  SELECT count(*)
FROM managebooking
WHERE (Time(BookingTimeFrom)   >= '08:35:00' 
AND Time(BookingTimeTo) > '08:35:00'
AND Time(BookingTimeFrom)  < '09:45:00')
OR (Time(BookingTimeFrom)  < '08:35:00' 
AND Time(BookingTimeTo)  > '08:35:00'
AND Time(BookingTimeFrom) < '09:45:00');