mysql - 查看日期范围内所选房间的空房情况

标签 mysql sql

我在数据库中有一个名为 reservations 的表,其中包含以下列:iddate_fromdate_to、< em>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的日期将被视为免费

最佳答案

您可以使用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;

关于mysql - 查看日期范围内所选房间的空房情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17565582/

相关文章:

mysql - 获取 MySQL 中两个日期之间的年差作为整数

php mysql-上传具有相同id的文件

php - 使用没有列别名的 PDO::FETCH_ASSOC 的奇怪 MYSQL 结果

mysql - 如何在一些记录之间随机选择一些记录?

sql - 如何选择具有指定 ID 和最新日期的前 (5) 行?

PHP分页问题

mysql - 通过第 n 个 child ID 获得最高的 parent ?

javascript - 如何在嵌入中显示用户的列值?

sql - 在表格中找到相同地理点的最快方法是什么?

mysql - PL/SQl - 找出年薪的总增长