检查日期范围内所选房间的可用性
Posted
技术标签:
【中文标题】检查日期范围内所选房间的可用性【英文标题】:Check availability of selected room in date range 【发布时间】:2013-07-10 08:15:46 【问题描述】:我在数据库中有一个名为 reservations 的表,其中包含以下列:id、date_from、date_to、obj_id.
在我的应用程序中,我需要创建一个 sql 查询,我可以在其中检查指定日期范围内的房间 (obj_id) 的可用性。
我试图使用类似以下的东西,但效果不佳:
select * from `reservations`
where ((`date_from` <= $from and `date_to` >= $from)
or (`date_from` <= $to and `date_to` >= $to)) and `obj_id` = $obj
例如,如果在 2013-07-03 至 2013-07-06 期间预订了某些房间,则将 2013-07-01 至 2013-07-07 的日期视为免费
【问题讨论】:
“工作不正常”不是正确的问题解释。 例如,2013-07-03 至 2013-07-06 预订房间时,2013-07-01 至 2013-07-07 的日期视为免费 提出问题 【参考方案1】:您可以使用 sql 的 Between 子句来过滤两个给定日期之间的结果。有关详细信息,请参阅此link。 以下是您可以尝试查询的内容!
Select * from `Reservations` where $ToDate between date_from and date_to
OR date_to between $FromDate and $ToDate
OR $FromDate between date_from and date_to
OR date_from between $FromDate and $ToDate
AND `obj_id` = $obj;
【讨论】:
以上是关于检查日期范围内所选房间的可用性的主要内容,如果未能解决你的问题,请参考以下文章