我需要检查两个日期是否与我数据库中的另外两个日期重叠。
我的数据库看起来像这样
+----+--------------+------------+------------+
| 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 |
+----+--------------+------------+------------+
在我的查询中,我指定了范围:开始日期和结束日期让我们按如下方式分配它们:
ScopeStartDate = "2013-10-1"
ScopeEndDate = "2013-11-26"
以上应该返回我所有的记录,因为所有的时间跨度都超过了。
但是我无法让查询工作:/
我尝试了以下查询,但没有成功:
WHERE
(
(StartDate < ScopeStartDate AND StartDate > ScopeStartDate)
OR
(StartDate > ScopeStartDate AND EndDate < ScopeEndDate )
)
这返回了两个结果: 1 和 3
我究竟做错了什么?