MYSQL:查找特定时期之间的记录

时间:2014-12-02 07:27:24

标签: mysql sql

我有一个名为&#34的表; checkInGuestUsers"其中有像' checkInTime(DATETIME),checkOutTime(DATETIME),rooms(varchar)

等栏目

特定用户在特定时间内预订了一些房间,

UserId   checkInTime         checkOutTime              rooms

25     2014-12-04 00:00:00   2014-12-05 23:59:59       101,102

现在,另一位用户或同一用户希望在

中预订房间
"2014-12-03 00:00:00" to "2014-12-04 23:59:59" OR
"2014-12-04 00:00:00" to "2014-12-04 23:59:59"

然后系统应该返回除101,102之外的所有房间清单,因为这些房间已经预订了 " 2014-12-04 00:00:00"到" 2014-12-04 23:59:59"

我想要一个SQL查询,如果我从上面的一个中选择时间,那么它将返回在该时间段内预订的房间。

我尝试过使用SQL之间的条件大于或小于条件但未能得到确切的结果。

2 个答案:

答案 0 :(得分:0)

从checkInTime为null的房间中选择room_id或checkOutTime< = bookFrom并且checkInTime为null或bookTo< = checkInTime

这是家庭作业吗?

答案 1 :(得分:0)

select r.* 
from rooms r
  left join checkInGuestUsers g 
  on g.rooms like r.<room_no>  -- actually not a good condition, should be improved
     and g.checkInTime <= {:book_to} and g.checkOutTime >= {:book_from}
where g.rooms is null