【发布时间】:2014-05-30 13:10:37
【问题描述】:
我正在尝试在两个日期之间预订所有房间。
我现在正在使用这个查询,但我遇到了问题。我尝试了很多东西,做了很多搜索,但几个小时后,我决定尝试在这里寻求帮助。
SELECT 1 FROM reservations WHERE
checkin <= '$check_out' AND checkout >= '$check_in'
假设有人在 21 日到 22 日预订。
他于 21 日下午 4:00 入住,并于 22 日下午 12:00 退房
房间在 21 日下午 4:00 之前仍然是免费的
22日中午12:00以后房间还有空
通过此查询,我无法预订 20 日至 21 日
20日下午4:00入住,21日12:00退房
我也无法预订 22 日至 23 日。
知道如何调整查询以反映这一现实吗?
还有那个查询:
(checkin <= '$check_in' AND checkout >= '$check_in') OR
(checkin <= '$check_out' AND checkout >= '$check_out') OR
(checkin >= '$check_in' AND checkout <= '$check_out')
您可以参考这个问题,这是我提出疑问的地方: Checking for date range conflicts in MySQL
非常感谢!
【问题讨论】:
-
看看this有没有帮助
-
它有效。有用!!!我在使用日期逻辑时遇到问题。非常感谢@georstef。