2012-04-29 3 views
0

Я не могу понять, как написать запрос для проверки даты.mysql query check date

Например,

Столы для комнат; room_id, number_of_rooms, checkin(date: 1/05/2012), checkout(date:14/05/2012);

Я хочу написать запрос, который проверяет введенную дату пользователем (дата проверки и проверки) с таблицами номеров (дата регистрации и проверки);

Идея заключается в том, чтобы знать, является ли период времени, введенного пользователем между регистрации заезда и дату отъезда таблицы номеров

Нечто подобное;

select * from romms 
where checkin and checkout date is not among user_entered_checkin and user_entered_checkeout 

ответ

2

Может

SELECT * FROM rooms 
WHERE (checkin IS NOT BETWEEN user_entered_checkin AND user_entered_checkout) 
    AND (checkout IS NOT BETWEEN user_entered_checkin AND user_entered_checkout) 
+0

Я задаюсь вопросом, может ли он работать в ситуации, такие как 'оформленного ввода = user_entered_checkin и наладку = user_entered_checkout' – Akram

+0

Предполагая, что вы не хотите, чтобы эти результаты он должен. BETWEEN включено (> =/<=), и это отрицание (). – mkjeldsen

+0

Позвольте мне проверить это, я дам вам знать – Akram

0

Если вы хотите диапазоны из таблицы, которые полностью вне введенного пользователем диапазона, то вы могли бы пойти как это:

... 
WHERE checkin > user_entered_checkout 
    OR checkout < user_entered_checkin 

Если вы нужны строки, где диапазоны не менее частично вне введенного пользователем диапазона, тогда условие может быть следующим:

... 
WHERE checkin < user_entered_checkin 
    OR checkout > user_entered_checkout