sql - DateTime 重叠 3 个日期
问题描述
我正在尝试建立一种算法来检测几个日期之间的冲突。但我有一个问题如下:
我有在给定日期编程的块。我试图检测冲突。目标是不要同时看到两个以上的街区
我试图提出有两个以上冲突的情况。我目前使用这种方法来查找两个日期之间的冲突:
Datestart <= @DateEndToTest AND DateEnd >= @DateStartToTest
问题是我在一秒钟内有三个冲突。这是一个图表,可以更好地解释它:
如何避免在 00:00 检测到三个冲突?
提前致谢
问题是我一次总是有三个冲突
B1 -> start: 2021-12-24 00:00:00 | end: 2021-12-25 00:00:00
B2 -> start: 2021-12-25 00:00:00 | end: 2021-12-26 00:00:00
B3 -> start: 2021-12-24 00:00:00 | end: 2021-12-26 00:00:00
(b3 covers b1 and b2)
2021-12-25 00:00:00 的三个冲突,但我不想检测到这个冲突。
解决方案
要排除一个,您必须更改您的限制检查。
如果你不想要第一个:
[DateStart] <= @DateTimeEnd AND [DateEnd] > @DateTimeStart
如果你不想要第二个:
[DateStart] < @DateTimeEnd AND [DateEnd] >= @DateTimeStart
推荐阅读
- python - 如何将数据库引擎/连接传递到多处理池?不能腌制 _thread._local 对象
- r - 使用 tidyverse 在 R 中进行数据整理?
- python - 在 pandas 中对具有多个条件的数据进行排序
- kubernetes - 如何在 GitLab 上强制删除 kubernetes 集群?
- c# - 从其他应用程序动态读取用户设置,而不知道文件包含什么设置 C# .Net
- c - 如何将带有字符串的值添加到 char 数组中?
- c# - 装饰器模式 Unity 寄存器类型问题
- r - 在 R 中连接多个矩阵的简单方法
- spring - 在 Spring Cloud Streams 中将消息发送到 DLQ 之前添加自定义信息
- javascript - 使用 Flask 从 Folium 弹出窗口执行 JavaScript 函数