MySQL显示可用时间?

时间:2015-01-02 13:45:23

标签: php mysql

+-----------+----------+------------+--------------+-------------+------------------+-----------------+
| 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)。

我正在尝试找出一个SQL查询,它允许我查询表格,并在特定时间内查找给定日期的所有可用时间/广告位。

例如,客户要求在2015年1月1日预订1小时,我们的营业时间为09:00至17:00。我想查询表并收到以下结果......

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

这只能用SQL实现,还是我还需要一些PHP?

我还使用日期时间字段而不是日期(如上所示)尝试了一些查询。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分: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'))

该查询将为您提供当天可用的所有小时数。 (您可以为开放时间添加时间限制)