2016-02-18 75 views
1

我正在開發一個應用程序是房間預訂。首先,我想根據他的城市和fromdatetodate向用戶顯示可用房間。爲此,我有一個表tbl_room與列如id,room_name,city,fromdate,todate等。空房間取決於SQL查詢中的日期?

我試圖根據fromdatetodatecity來編寫查詢,以顯示我的表格中的可用房間。

我的查詢看起來是這樣的:

select 
    rooms, price, name, persons_capacity 
from 
    tbl_room 
where 
    city = 'xxxx' 
    and fromdate between 'yyyy-mm-dd' and 'yyyy-mm-dd' 

但是,這是因爲我沒有檢查todate這裏返回錯誤的結果。

如何在我的查詢中使用todate查看空房情況?

謝謝。

+0

這可能有幫助:http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap –

+0

那麼,你是否存儲房間的**可用性**(如'from - 到'期間),或者當房間被**佔用時,您是否存儲**? –

+0

是的,我在後臺存儲了我的表tbl_room中的房間的可用性。這是一個很好的問題。這裏我的主要問題是我可以另外預訂一張桌子嗎?假設我看看tbl_room桌子和我預訂的桌子之間的共同點是什麼?請問你能告訴我嗎?我是新手。謝謝@marc_s – Nag

回答

1

你可以這樣說:

select rooms,price,name,persons_capacity 
from tbl_room 
where city='xxxx' 
and fromdate <= @end and enddate >= @start 

隨着@啓動到@end是您的日期範圍。

+0

爲什麼你checkdate fromdate <= todate和enddate> = fromdate?我在這裏感謝 – Nag

+1

我認爲它是:你聲明一個變量'@ end'作爲你的'todate'和一個變量'@ start'作爲你的' fromdate'。你傳遞給'@ start''fromdate'和'@ end'你的'todate'。現在你已經定義了範圍。卡拉檢查結束日期不在開始日期之前,開始日期必須在結束日期之前。 – CM2K

+0

是的,我知道了@ CM2K – Nag