MySQL查询日期范围 - 查找常见期间

时间:2017-10-12 12:10:18

标签: php mysql date range

请接受我的道歉,因为缺乏尝试的代码。

我无法理解这一点 - 甚至弄清楚它是否可行!

我的桌子上装满了'日期位置',这些可以由个人预订。

时段表如下所示:

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)如果有,请获取日期范围。

急需帮助!

谢谢

1 个答案:

答案 0 :(得分:1)

我认为这样可行:

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。