2012-04-29 95 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