查询开始日期和结束日期
问题描述:
我已经突破网络,但仍然没有答案。查询开始日期和结束日期
那么,我正在创建一个酒店房间预订系统。
我的房间可用性查询工作正常与此查询:
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的小白。
答
根据为chckout
和chckin
您的数据类型,你可能只是想用BETWEEN
操作,或者使用含相等运算符(>=
,<=
)。
答
我想你只需要到where
条款改为:
WHERE NOT (b.chckout < '$chckin'
OR b.chckin >= '$chckout')
这假定chckin和chckout存储为日期。否则,您需要将它们转换为日期,这取决于数据库。 。 。这里有一些方法:
date(b.chckin)
cast(b.chckin as date)
trunc(b.chckin)