【发布时间】:2021-12-21 05:08:32
【问题描述】:
我有一张桌子 hotel_booking
| reference | start_date | numberOfDays |
|---|---|---|
| ABC | 11-08-2021 | 2 |
| DEF | 12-08-2021 | 2 |
| GHI | 13-08-2021 | 3 |
| JKL | 10-08-2021 | 2 |
所以我想要的第一个任务是获取所有 startDate 在 x 和 y 日期之间的预订,这是直接查询
select reference
from hotel_booking
where DATE(start_date) BETWEEN '2021-08-11' AND '2021-08-12'
这返回了完美的 ABC 和 DEF。
现在我想根据 numberOfdays 检查所有具有重叠期间的预订
例如,根据 numberOfDays 获取 startDate 和 endDate 提到的期间内的所有预订
输入:例如,如果 startDate 是 11-08-2021,endDate 是 12-08-2021 那么
预期输出:返回的预订是 JKL、ABC 和 DEF,因为 JKL 有 2 天的预订,这将与 startDate 11-08-2021 重叠
任何指针将不胜感激
【问题讨论】:
-
您还需要指定预期结果。
-
我已经提到了..我会说得更清楚
标签: mysql sql date date-range