[英]MySQL query date range - find common periods
请接受我对缺乏尝试代码的歉意。
我无法解决这个问题 - 甚至不知道它是否可行!
我有一张桌子,里面摆满了“约会时段”,个人可以预订。
时隙表如下所示:
ID | Price | Available_from | Available_ to
------------------------------------
1 | 20.00 | 2017-10-01 | 2018-01-01
2 | 20.00 | 2017-11-01 | 2017-12-07
3 | 20.00 | 2017-10-31 | 2018-01-31
4 | 20.00 | 2017-10-22 | 2017-11-21
------------------------------------
在这些行中,有一个共同的日期范围,其中所有四个结果都可用,2017-11-01 > 2017-11-21
我想查询我的数据库,看看是否 1) 每个结果都有一个共同的范围,2) 如果有,获取日期范围。
急切求助!
谢谢
我认为这会起作用:
SELECT MAX(Available_from) as MatchFrom,
MIN(Available_to) as MatchTo
FROM Temporary.test
WHERE
(SELECT MAX(Available_from) FROM Temporary.test)
<=(SELECT MIN(Available_to) FROM Temporary.test)
如果没有重叠范围,它将返回 NULL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.