Jaz*_*rix 4 mysql sql datetime
我需要检查我的数据库中是否有两个日期和另外两个日期.
我的数据库看起来像这样
+----+--------------+------------+------------+
| 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 |
+----+--------------+------------+------------+
Run Code Online (Sandbox Code Playgroud)
在我的查询中,我指定范围:开始日期和结束日期让它们如下所示:
ScopeStartDate = "2013-10-1"
ScopeEndDate = "2013-11-26"
Run Code Online (Sandbox Code Playgroud)
上面应该返回所有记录,因为所有记录都与时间跨度重叠.
但是我无法查询工作:/
我试过以下查询没有运气:
WHERE
(
(StartDate < ScopeStartDate AND StartDate > ScopeStartDate)
OR
(StartDate > ScopeStartDate AND EndDate < ScopeEndDate )
)
Run Code Online (Sandbox Code Playgroud)
这给我两个结果: 1和3
我究竟做错了什么?
ame*_*iel 30
我相信以下条件匹配每个可能的重叠情况.
WHERE
(
(ScopeStartDate <= EndDate AND ScopeEndDate >= StartDate)
)
Run Code Online (Sandbox Code Playgroud)
除非您声明了不合逻辑的时间跨度(例如,那些在开始之前结束的时间)