2015-01-02 2 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  | 
+-----------+----------+------------+--------------+-------------+------------------+-----------------+ 

В приведенной выше таблице указаны заказы клиентов (бронирование, бронированиеСтартTime, бронированиеStopTime).MySQL Показать доступные времена?

Я пытаюсь выяснить SQL-запрос, который позволит мне запросить таблицу и найти все доступные временные/временные интервалы для определенного дня в течение определенного времени.

Например, клиент запрашивает 1 час бронирования 1 января 2015 года, и мы открыты с 09:00 до 17:00. Я хотел бы запросить таблицу и получить следующие результаты ...

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

ли это возможно только с SQL или мне нужно немного PHP там также?

Я также пробовал несколько запросов, используя поля datetime вместо даты (как показано выше).

Любая помощь будет оценена по достоинству.

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

Запрос предоставит вам все часы, которые доступны в течение дня. (Вы можете добавить временные ограничения для часов работы)

Смежные вопросы