2014-11-25 76 views
0

你好,我試圖從MySQL
mytable的選擇結果日期:
PHP之間2日期

id_room | check_in | CHECK_OUT


問題是,當我想betwwan日起保留數據檢查日期2.
例如我的房間的數據:

id_room: ; check_in2014/11/01; CHECK_OUT2014年11月8日

所以我想檢查我的預訂中,2014年11月3日和2014年11月4日。在系統中,它不會導致那意味着在那個日期沒有預訂,但是在實際生活中,2014/11/03和2014/11/04必須已經預訂。因爲2014/11/01的im check_in和2014/11/08的check_out。

我使用

SELECT * FROM tabel WHERE cek_in BETWEEN '2014/11/03' AND '2014/11/04' OR cek_out BETWEEN 2014/11/03' AND '2014/11/04'

因此,如果有任何線索或其他邏輯,請告訴我:d 感謝

+1

是'check_in'和'check_out'列的實際日期列,還是他們只是存儲字符串?另外我很抱歉,但我不知道你在問什麼。 – Andrew 2014-11-25 14:16:51

+0

@Andrew,我想創建腳本來檢查date1和date2之間的預約日期。客戶可以通過搜索時間段 – febriyanmf 2014-11-26 02:09:35

回答

0

如果我理解正確的;這是您要包括重疊的日期預訂的一個經典問題:

SELECT * 
    FROM table1 
WHERE cek_out >= '2014-11-03' /* Check OUT >= START of range to check */ 
    AND cek_in <= '2014-11-05' /* Check IN <= END of range to check */; 

UPDATE

所以,你正在運行上面的查詢和房間有一個現有的預訂

cek_in = '2014-11-01' (<= '2014-11-05') /* OK */ 
cek_out = '2014-11-05' (>= '2014-11-03') /* OK */ 

這應該出現了,你確定你寫了正確的查詢嗎?看評論。

+0

thx來檢查解決方案。我試圖添加你的SQL,但是當我檢查日期'2014年11月3日'和'2014年11月5日',MySQL給空的結果。實際上,Room1已經預訂了日期01到日期05. Im很抱歉,不好說明 – febriyanmf 2014-11-26 02:19:26

+0

@febriyanmf請參閱更新 – Arth 2014-11-26 20:17:28