2014-11-20 194 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

相關問題