2015-01-02 26 views
0
+-----------+----------+------------+--------------+-------------+------------------+-----------------+ 
| bookingID | schoolID | customerID | instructorID | bookingDate | bookingStartTime | bookingStopTime | 
+-----------+----------+------------+--------------+-------------+------------------+-----------------+ 
|   1 |  1 |   1 |   15 | 2015-01-01 | 09:00:00   | 10:00:00  | 
|   2 |  1 |   1 |   15 | 2015-01-01 | 15:00:00   | 16:00:00  | 
|   3 |  1 |   1 |   15 | 2015-01-01 | 12:00:00   | 13:30:00  | 
|   4 |  1 |   1 |   15 | 2015-01-01 | 11:00:00   | 12:00:00  | 
+-----------+----------+------------+--------------+-------------+------------------+-----------------+ 

上表顯示了客戶預訂(bookingDate,bookingStartTime,bookingStopTime)。MySQL顯示可用時間?

我想弄清楚一個SQL查詢,這將允許我查詢表並查找特定日期的特定時間內的所有可用時間/插槽。

例如,客戶要求在2015年1月1日1小時預訂,我們的營業時間爲09:00至17:00。我想查詢表格,並收到以下結果...

10:00 > 11:00 
14:00 > 15:00 
16:00 > 17:00 

這是可能的只是SQL或我會需要一些PHP呢?

我也通過使用日期時間字段而不是日期(如上所示)嘗試了一些查詢。

任何幫助,將不勝感激。

+0

您需要加入一個列出所有小時數的表。 – Barmar

+0

您*可以*加入列出所有小時的表格,但您不需要*。 – Strawberry

+0

我寧願沒有另外的表格列出小時數,因爲我應該能夠在SQL中指定小時數? – jormerod1981

回答

0
SELECT 
    * 
FROM 
    your_table 
WHERE 
    bookingDate = '$your_date' AND 
    ('$your_start_time' >= bookingStartTime AND '$your_start_time' < bookingStopTime OR 
    (bookingStartTime >= '$your_start_time' AND bookingStartTime < '$your_end_time')) 

該查詢將爲您提供白天可用的所有時間。 (您可以添加開放時間的時間限制)