我需要检查我的数据库中的两个日期是否与另外两个日期重叠。
我的数据库看起来像这样
+----+--------------+------------+------------+
| 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 我做错了什么?
(StartDate < ScopeStartDate AND StartDate > ScopeStartDate)
怎么可能是真的呢?它不可能既大于又小于。 - just lerning