2014年10月31日 星期五

【MySQL】訂房系統的日期範圍

最近公司有一個PHP專案,要開發訂房系統,其中遇到一個訂房系統裡一個很基本的問題,就是訂房者想知道 2014-10-14~2014-10-16,這三天還有沒有空的房間

SQL語法該怎麼表示呢?

我的方式是:
/**
 * start_date: Check in日期
 * end_date: Check out日期
 * $start_date = "2014-10-14";
 * $end_date = "2014-10-16";
 */
SELECT room_name, start_date 
  FROM 
      Room_Table 
  WHERE 
      (start_date BETWEEN '".$start_date."' AND '".$end_date."' OR 
      end_date BETWEEN '".$start_date."' AND '".$end_date."' OR 
      '".$start_date."' BETWEEN start_date AND end_date) 
  ORDER BY start_date ASC

是說,應該還有更簡單的寫法吧!?
如果有,還希望有人可以告訴我^^

沒有留言:

張貼留言