检查日期范围内所选房间的可用性

Posted

技术标签:

【中文标题】检查日期范围内所选房间的可用性【英文标题】:Check availability of selected room in date range 【发布时间】:2013-07-10 08:15:46 【问题描述】:

我在数据库中有一个名为 reservations 的表,其中包含以下列:iddate_fromdate_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;

【讨论】:

以上是关于检查日期范围内所选房间的可用性的主要内容,如果未能解决你的问题,请参考以下文章

用于检查房间可用性的 SQL 查询

如何在 Django 中检查或设置房间可用性

查找预订重叠以检查日期可用性

PHP/MySQL 中的预订日期可用性范围

选择日期之间的房间可用性(sql查询)

应用引擎数据存储中的可用性日期范围查询?