2013-11-10 3 views
0

Мне нужно найти входной диапазон дат пользователя в соответствии с рядом диапазонов дат в таблице MySQL.Пользовательский диапазон ввода дат от ряда диапазонов дат в MySQL

Возможно, пример может объяснить это лучше. Предположим, у меня есть база данных «Отель» со столом «Цены». Один ряд для «Падения» от с 1 сентября по 30 ноября, а другой - «Зима» от с 1 декабря по 30 марта с дополнительными колонками. Гость бронирует номер, который перекрывает две ставки. Он будет там на День Благодарения и уйдет в начале декабря. Это будет охватывать две отдельные ставки. Мне нужно запустить поиск, который возвращает каждую строку «Rate», находящуюся в гостях у гостя.

Это работает только если Забронировав гостей полностью в течение одного (и только один) Скорость:

SELECT * FROM 'rates' WHERE start < $guestArrive AND end > $guestDepart 

Любые идеи?

ответ

0

Являются ли даты начала и окончания взаимоисключающими? Вы можете сделать это:

SELECT * FROM 'rates' 
WHERE 
    (start <= $guestArrive AND $guestArrive <= end) 
    OR 
    (start <= $guestDepart and $guestDepart <= end) 

или ясное:

SELECT * FROM 'rates' 
WHERE 
    ($guestArrive BETWEEN start AND end) 
    OR 
    ($guestDepart BETWEEN start AND end) 
Смежные вопросы