2012-04-29 181 views
0

我无法弄清楚如何编写查询来检查日期。mysql查询检查日期

例如;

房间表; room_id, number_of_rooms, checkin(date: 1/05/2012), checkout(date:14/05/2012);

我想写一个查询,检查用户输入的日期(签入和结帐日期)与房间tabel(签入和结帐日期);

的想法是要知道用户输入的时间是否已检查之间,并检查了房间表的日期

像这样的东西;

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 2012-04-29 06:29:15

+0

假设你不希望这些它应该的结果。 BETWEEN是包含性的(> =/<=),这是否定()。 – mkjeldsen 2012-04-29 06:41:33

+0

让我看看,我会让你知道的 – Akram 2012-04-29 07:15:22

0

如果你想从表中是完全用户输入的范围以外的范围,那么你可以是这样的:

... 
WHERE checkin > user_entered_checkout 
    OR checkout < user_entered_checkin 

如果您想要在范围至少为部分以外的用户输入范围内的行,则条件可能是这样的:

... 
WHERE checkin < user_entered_checkin 
    OR checkout > user_entered_checkout