我需要检查两个日期是否与我的数据库中的另外两个日期重叠。MySQL检查两个日期范围是否与输入重叠
我的数据库看起来像这样
+----+--------------+------------+------------+
| id | code | StartDate | EndDate |
+----+--------------+------------+------------+
| 1 | KUVX-21-40 | 2013-10-23 | 2013-11-22 |
| 2 | UEXA286-1273 | 2013-10-30 | 2013-11-29 |
| 3 | UAJFAU-2817 | 2013-10-21 | 2013-11-20 |
| 4 | KUVX-21-40 | 2013-10-30 | 2013-11-29 |
+----+--------------+------------+------------+
在我的查询我指定的范围:一个开始日期和结束日期 让ASIGN它们如下:
ScopeStartDate = "2013-10-1"
ScopeEndDate = "2013-11-26"
以上应该返回我所有的记录,因为全部都是时间跨度。
但是我不能让查询工作:/
我已经试过,没有运气以下查询:
WHERE
(
(StartDate < ScopeStartDate AND StartDate > ScopeStartDate)
OR
(StartDate > ScopeStartDate AND EndDate < ScopeEndDate)
)
这将返回我的两个结果: 1和3
我做错了什么?
如果我明白你想,这应该是什么“和” insted的的“OR” –
哪有'(起始日期 ScopeStartDate)“永远是真的吗?它不能越来越小。 –
正确,比较器也是错误的。 –