首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >起止日期查询

起止日期查询
EN

Stack Overflow用户
提问于 2013-02-21 23:20:11
回答 2查看 211关注 0票数 0

我已经搜网了,但还是没有答案。

我正在创建一个酒店房间预订系统。

我的房间可用性查询可以很好地处理这个查询:

代码语言:javascript
复制
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日作为开始日期,2月3日作为结束日期,在数据库中,它将显示为2天的预订。

所以我的问题是:我如何查询客户仍然可以从已经预订的房间中选择结束日期?

我实际上看到了一个站点,它有一个类似于AM/PM http://reservations.directwithhotels.com/reservation/selectDates/148/campaign/ew的日期选择器

但我对javascript太不在行了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-21 23:21:59

根据chckoutchckin的数据类型,您可能只想使用BETWEEN运算符,或者使用包含相等运算符(>=<=)。

票数 0
EN

Stack Overflow用户

发布于 2013-02-21 23:32:15

我认为您只需要将where子句更改为:

代码语言:javascript
复制
WHERE NOT (b.chckout < '$chckin'
                              OR b.chckin >= '$chckout')

这假设chckin和chckout存储为日期。否则,您需要将它们转换为日期,这取决于数据库。。。以下是一些方法:

代码语言:javascript
复制
date(b.chckin)
cast(b.chckin as date)
trunc(b.chckin)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15005807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档