gpt4 book ai didi

MySQL检查两个日期范围是否与输入重叠

转载 作者:可可西里 更新时间:2023-11-01 07:10:01 25 4
gpt4 key购买 nike

我需要检查数据库中的两个日期是否与另外两个日期重叠。

我的数据库是这样的

+----+--------------+------------+------------+
| 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

我做错了什么?

最佳答案

我相信以下条件符合所有可能的重叠情况。

WHERE
(
(ScopeStartDate <= EndDate AND ScopeEndDate >= StartDate)

)

除非您声明不合逻辑的时间跨度(例如,那些在开始之前结束的时间跨度)

关于MySQL检查两个日期范围是否与输入重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19743829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com