gpt4 book ai didi

mysql - 检查 SQL 中的“交易起始日期”和“交易截止日期”之间的“搜索起始日期”和“搜索截止日期”

转载 作者:行者123 更新时间:2023-11-29 10:49:21 25 4
gpt4 key购买 nike

我有一个表格如下。

DealID        DealTitle   DealStart_Date           DealEnd_Date
1 A 2017-05-01 00:00:00 2017-05-05 00:00:00
2 B 2017-05-02 00:00:00 2017-05-06 00:00:00
3 C 2017-05-03 00:00:00 2017-05-07 00:00:00
4 D 2017-05-04 00:00:00 2017-05-08 00:00:00
5 E 2017-05-05 00:00:00 2017-05-09 00:00:00

现在在搜索中我正在使用两个日期搜索数据

Deal From : 2017-05-08 00:00:00
Deal To : 2017-05-15 00:00:00

根据逻辑,应该返回DealID 4和6

我使用的查询是

SELECT * FROM dealofday WHERE '2017-05-02 00:00:00' AND '2017-05-05 00:00:00' BETWEEN DealStart_Date AND DealStart_Date ORDER BY DealID ASC

我尝试过中间查询但没有成功。我怎样才能克服这个问题。

最佳答案

如果您想在表中存储的范围与您提供的搜索范围之间找到任何形式的重叠,一对简单的比较就足够了:

SELECT * FROM dealofday
WHERE '2017-05-02 00:00:00' < DealEnd_Date AND
DealStart_Date < '2017-05-05 00:00:00'
ORDER BY DealID ASC

或者,用英语来说 - 如果第一个周期在第二个周期结束之前开始,并且第二个周期在第一个周期结束之前开始,则两个周期重叠。

您可以调整 <对于 <= ,取决于端点是包含的还是排除的,以及恰好邻接1的两个周期是否被视为重叠。

<小时/>

1一个时期开始于另一个时期结束的确切时间点。

关于mysql - 检查 SQL 中的“交易起始日期”和“交易截止日期”之间的“搜索起始日期”和“搜索截止日期”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44019653/

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