2014-11-20 195 views
1

我在mysql的表结构,获取30分钟开始和结束时间之间的时间间隔的数据在MySQL

table_id no_people booking_date bookingend_time  bookingstart_time 
     14   2 2014-10-31 2014-10-31 13:30:00 2014-10-31 11:00:00 
     5   4 2014-10-31 2014-10-31 16:30:00 2014-10-31 14:30:00 
     6   2 2014-10-31 2014-10-31 17:00:00 2014-10-31 16:00:00 
     2   4 2014-11-06 2014-11-06 12:30:00 2014-11-06 10:00:00 
     2   4 2014-10-31 2014-10-31 16:00:00 2014-10-31 14:00:00 
     3   4 2014-11-01 2014-11-01 09:00:00 2014-11-01 07:30:00 
     6   2 2014-11-01 2014-11-01 10:00:00 2014-11-01 07:30:00 
     2   4 2014-11-03 2014-11-03 10:30:00 2014-11-03 08:30:00 
     5   4 2014-11-04 2014-11-04 10:30:00 2014-11-04 08:30:00 
     3   4 2014-11-05 2014-11-05 09:30:00 2014-11-05 07:30:00 
     14   2 2014-11-05 2014-11-05 09:30:00 2014-11-05 07:30:00 

我想与起始和结束时间之间的间隔30分钟获取的table_id数据。

例: 如果我给预约开始时间10:30和结束时间12:30我应该得到14行.. 同样应该检查所有的行和两个时间之间返回..

我的查询到目前为止

SELECT `table_id` FROM `booking` WHERE bookingstart_time>='2014-10-31 10:30:00' AND bookingend_time<='2014-10-31 11:30:00' 
+0

难道你希望在指定的时间间隔内或者30分钟内获得“繁忙”的行吗?换句话说,如果输入的搜索时间间隔是“10:00-11:00”,那么你想要拉开始/结束时间“09:00-12:00”,“11:01-13:00” ,“09:00-09:59”,但不是“09:00-09:29”? – RandomSeed 2014-11-21 00:20:25

+0

是的。我怎样才能做到这一点 – Arockiaraj 2014-11-24 07:04:41

+0

你可能想在你的问题中记录这些案例。最好在问题主体中保留所有相关信息。 – RandomSeed 2014-11-24 23:23:32

回答

1

第1步:在30分钟前和30分钟后扩大输入时间范围。 DATE_ADD()DATE_SUB()能做到这一点:

DATE_SUB(_input_start_date_here_, INTERVAL 30 MINUTE) 

步骤2:在开始和结束时间方面重新考虑你的问题。下面是可能情况:

  • 如果预订时开始的(扩张)期,那么你要这个预订在结果
  • 或者如果预订之前启动时期,那么你想此预订,除非它也结束之前另一方面时期
  • ,如果预订期后开始,那么你不希望这个预订

第一种情况上面可以表示这样的:

WHERE bookingstart_time >= DATE_SUB(_input_start_date_here_, INTERVAL 30 MINUTE) 
AND bookingstart_time <= DATE_ADD(_input_end_date_here_, INTERVAL 30 MINUTE) 

第二个条件是留给读者作为练习。您也可以使用更优雅的BETWEEN运营商来重写上述内容。

0

SELECT restaurant_table FROM rest_restaurantbooking WHERE TIMESTAMPDIFF(SECOND,bookingstart_time,bookingend_time)> 1800

供参考:HERE

+0

它显示所有表格。我需要检索在给定预订开始和结束时间之间发生的表格。此查询是查询与我无关。 – Arockiaraj 2014-11-21 05:52:25

相关问题