Получить следующую доступную дату от начальной и конечной даты - PullRequest
0 голосов
/ 02 декабря 2018

Мне нужны доступные даты из таблицы базы данных.

Room number Start_date  End_date
room 1  2018-12-01  2018-12-05
room 1  2018-12-08  2018-12-15
room 1  2018-12-20  2018-12-31

Вот я добавил таблицу из базы данных.Когда пользователь выбирает дату начала и дату окончания, чем проверить в базе данных.Если интервал между датой начала и датой окончания уже имеется, тогда результат требует доступной даты.

Дата начала пользователя = 2018-12-05

Дата окончания = 2018-12-20

Требуется результат:

2018-12-06
2018-12-07
2018-12-16
2018-12-17
2018-12-18
2018-12-19

1 Ответ

0 голосов
/ 02 декабря 2018

Чтобы действительно решить эту проблему, вам нужна таблица Calendar с одной строкой в ​​день.

С такой таблицей вы можете сделать:

select c.date
from calendar c
where c.date >= '2018-12-05' and
      c.date <= '2018-12-20' and
      not exists (select 1
                  from t
                  where c.date >= start_date and
                        c.date <= end_date
                 );

Замечу, что этоroom_number вообще не учитывается - потому что в вашем вопросе это вообще не упоминается.Если у вас есть вопрос, который включает room_number, задайте другой вопрос с соответствующими образцами данных, желаемыми результатами и объяснением того, чего вы хотите достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...