评估mysql日期范围

时间:2015-09-02 08:35:50

标签: mysql range date-range

我有一个带有一些日期范围的mysql表,例如:

start: 2015-09-10 end: 2015-09-10

现在,我必须检查另一个日期范围是否在开始日期之内,即使只是几天。

  1. 2015-09-02 - > 2015-09-03超出范围;
  2. 2015-09-05 - > 2015-09-11在范围内;
  3. 2015-09-11 - > 2015-09-12在范围内;
  4. ...
  5. 我有这些查询,适用于案例1和案例2:

    SELECT * FROM prenotazione WHERE id_stanza=1 AND (start BETWEEN '2015-09-11' AND '2015-09-12' and end BETWEEN '2015-09-11' AND '2015-09-12' )
    

    对于案例3,查询不返回任何结果,即使id为给定日期在范围内。 你能救我吗?

1 个答案:

答案 0 :(得分:1)

使用OR匹配开头或结尾

SELECT * FROM prenotazione 
WHERE id_stanza=1 AND
((`start` BETWEEN '2015-09-11' AND '2015-09-12') OR (`end` BETWEEN '2015-09-11' AND '2015-09-12'))