+-----------+----------+------------+--------------+-------------+------------------+-----------------+
| 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?
我还使用日期时间字段而不是日期(如上所示)尝试了一些查询。
任何帮助都将不胜感激。
答案 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'))
该查询将为您提供当天可用的所有小时数。 (您可以为开放时间添加时间限制)