gpt4 book ai didi

mysql - 检测两个时间是否冲突/相交

转载 作者:行者123 更新时间:2023-11-29 14:47:36 26 4
gpt4 key购买 nike

我目前正在开发一个事件管理系统,其中数据库存储时隙,如下所示:

SlotId | DateTime            | Duration  
-------+---------------------+---------------
1 | 2011-06-06 15:00:00 | 5.0
2 | 2011-06-06 14:00:00 | 3.0
3 | 2011-06-07 11:00:00 | 8.0

请注意,Duration 是以小时为单位的 DOUBLEDateTimeTIMESTAMP

在表中,我们可以清楚地看到时隙 1 和 2 发生冲突,而时隙 2 & 3 和时隙 1 & 3 不发生冲突。我们如何编写 SQL 语句来检测两个时隙之间的冲突?

最佳答案

也许我很困惑,但看起来这三个时间段都是重叠的。因为它们的运行时间分别为 11:00 - 19:00、14:00 - 17:00 和 15:00 - 20:00(与您的顺序相反,按开始时间顺序排列)。但如果我正确理解你的表格,这里是查找重叠的代码

SELECT CONCAT(T1.SlotId,  ' Overlaps ', T2.SlotId)
FROM YourTable AS T1 JOIN YourTable AS T2
WHERE T1.SlotId <> T2.SlotId AND
T1.DateTime <= T2.DateTime AND
DATE_ADD(T1.DateTime,INTERVAL SEC_TO_TIME(T1.Duration * 3600) HOUR_SECOND) > T2.DateTime

关于mysql - 检测两个时间是否冲突/相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6591445/

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