2013-02-21 130 views
0

我已經突破網絡,但仍然沒有答案。查詢開始日期和結束日期

那麼,我正在創建一個酒店房間預訂系統。

我的房間可用性查詢工作正常與此查詢:

SELECT r.roominv_id, r.room_id, m.room_type,r.room_number,r.room_status 
      FROM roominventory r 
      INNER JOIN room AS m ON m.room_id = r.room_id 
      WHERE m.room_type LIKE '%$roomtype%' 
      AND r.room_status = 'available' 
      AND r.roominv_id NOT IN (SELECT b.roominv_id 
         FROM reserve b 
         WHERE NOT (b.chckout < '$chckin' 
            OR b.chckin > '$chckout')) 

我想2月2日是我的開始日期在下午(酒店進行預訂中午12點後總是開始)和2月3日是我的最後一天(前中午12點)

但在我當前的查詢中,如果我選擇2月2日作爲startdate,2月3日作爲enddate,則在數據庫中,它將顯示爲2天預約。

所以我的問題是: 我將如何查詢客戶仍然可以從已經預訂的房間中選擇結束日期?

我居然看到了一個網站,有有幾分像AM/PM http://reservations.directwithhotels.com/reservation/selectDates/148/campaign/ew

一個datepicker,但我因此在JavaScript的小白。

回答

0

根據爲chckoutchckin您的數據類型,你可能只是想用BETWEEN操作,或者使用含相等運算符(>=<=)。

0

我想你只需要到where條款改爲:

WHERE NOT (b.chckout < '$chckin' 
           OR b.chckin >= '$chckout') 

這假定chckin和chckout存儲爲日期。否則,您需要將它們轉換爲日期,這取決於數據庫。 。 。這裏有一些方法:

date(b.chckin) 
cast(b.chckin as date) 
trunc(b.chckin) 
相關問題