我有一个窘境。我有一个包含两列的数据库,这两列都是时间戳,它们代表事件的开始和结束时间。
我还有两次表示开始和结束时段,我需要使用它来查询数据库以找出事件与开始和结束时段重叠的行。
如果给出的时间是06:00到23:00作为一个例子,但是当反向为真时,23:00到06:00(即一天的晚上11点到下一个的早上6点),这应该有用。 / p>
观察事件,
Ev1开始' 2015-06-05 10:08:57' 结束' 2015-06-05 16:18:27'
Ev2开始' 2015-06-05 16:08:57' 结束' 2015-06-05 23:18:27'
Ev3开始' 2015-06-10 19:30:47' 结束' 2015-06-11 01:43:17'
从12:00到17:00的时间和时间应返回Ev1和Ev2。 17:00至12:00的时间应返回Ev2和Ev3。
当有人纯粹寻找在某个时间之后或某个时间之前发生的任何事件时,我已经进行了搜索工作,这是两次给出的时间,然后考虑到更多的时间而不是一天。
我已经预先构建了一个带有架构的SQLFiddle:http://sqlfiddle.com/#!9/13616/1/0
非常感谢任何帮助!
此致
答案 0 :(得分:0)
[Event.start] <= [Timeframe.start] AND [Event.end] >= [Timeframe.start]
OR
[Event.start] BETWEEN [Timeframe.start] AND [Timeframe.end]