查找在特定时间发生的所有事件

时间:2018-09-22 16:22:31

标签: sql schedule

我有一个事件数据库,我想作一个每天的时间表。 看起来如下:

+-----+-----+---+--------+  
|Event|Start|End|Duration|  
+-----+-----+---+--------+    
|A    |08   |10 |2       |  
+-----+-----+---+--------+  
|B    |09   |10 |1       |  
+-----+-----+---+--------+    
|C    |13   |15 |2       |  
+-----+-----+---+--------+  

我想查询所有在9点举行的事件,但是我无法弄清楚计算时间的背后的数学原理。 对于此示例,查询应返回A和B。我试过了: 开始+持续时间> 9,然后开始<= 9,但这不正确...

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

您想要的where子句:

where start <= 9 and end > 9

也就是说,如果某事物在9处开始或在9之前结束,并在9之后结束,则发生在9处。(如果希望包含以9结束的事物,只需将>更改为>=

我注意到您的前导零。这表明这些值存储为字符串。在这种情况下,请进行字符串比较:

where start <= '09' and end > '09'