2

我相信这是一个非常微不足道的查询(我搜索了 SO 和 Google,但一无所获),SQL 绝对不是我的强项,过去几个小时我一直在喝咖啡……

我正在开发一个简单的预订系统。

我有一张像下面这样的预订表:

id | room_id | checkin_date  | checkout_date |
---+---------+---------------+---------------+
1  |    12   | 2012-10-12    |  2013-01-14   |
2  |    9    | 2012-12-08    |  2013-01-10   | 
3  |    4    | 2012-12-19    |  2012-12-26   | 
4  |    6    | 2012-11-12    |  2012-12-30   |  
5  |    3    | 2012-12-11    |  2012-01-11   |

如何获得在特定时间间隔内结束或开始的所有预订(数据将用于填充可用性日历)。

很抱歉没有发布我自己的 Sql,但我所有的许多尝试都是徒劳的(而且非常糟糕)。

提前致谢。

4

1 回答 1

1
select * from reservations 
where checkin_date between ? and ?
or checkout_date between ? and ?

例如,您需要在占位符中提供开始日期和结束日期

select * from reservations 
where checkin_date between '2012-01-01' and '2012-01-66'
or checkout_date between '2012-01-01' and '2012-01-66'
于 2012-12-04T03:02:59.597 回答