我有一个事件的数据库,我想做一个日程表。它看起来如下所示:
+-----+-----+---+--------+
|Event|Start|End|Duration|
+-----+-----+---+--------+
|A |08 |10 |2 |
+-----+-----+---+--------+
|B |09 |10 |1 |
+-----+-----+---+--------+
|C |13 |15 |2 |
+-----+-----+---+--------+
我想查询所有在9点举行的事件,但我不知道计算时间背后的数学原理。在本例中,查询应返回A和B。我尝试过:开始+持续时间>9并启动<=9,但它不正确...
有什么需要帮忙的吗?
发布于 2018-09-23 00:24:13
您需要的是这个where
子句:
where start <= 9 and end > 9
也就是说,如果9开始于1或在9之前结束,则在9发生。(如果希望包含以9结束的内容,只需将>
更改为>=
)。
我注意到你有前导零。这表明这些值被存储为字符串。在这种情况下,执行字符串比较:
where start <= '09' and end > '09'
https://stackoverflow.com/questions/52458561
复制相似问题