mysql - 评估mysql日期范围

标签 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. ...

我有这些查询,它适用于情况 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 给定日期在范围内,查询也不会返回结果。 你能帮我吗?

最佳答案

使用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'))

关于mysql - 评估mysql日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32348326/

相关文章:

mysql - 将 Amt1 和 Amt2 值添加到上一条记录的输出列值

javascript - 猜数字 – 创建数字范围 JavaScript

java - 为什么 double 到 int 转换在 java 中不能按预期工作?

MySQL 选择用 NULL 分隔的数据系列之间的日期范围

mysql - 协会不能双向发挥作用

mysql - 如何在关系数据库中进行继承建模?

php - 不同年份和月份的日期范围

php - 如何检查事件日期是否与现有事件不重叠

mysql - Orchard 1.8.1 安装MySQL

java - Java 有 IndexSet 和 Range 类吗?