两个日期戳之间的MySQL时间选择

时间:2015-06-18 09:10:40

标签: mysql date datetime

我有一个窘境。我有一个包含两列的数据库,这两列都是时间戳,它们代表事件的开始和结束时间。

我还有两次表示开始和结束时段,我需要使用它来查询数据库以找出事件与开始和结束时段重叠的行。

如果给出的时间是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

非常感谢任何帮助!

此致

1 个答案:

答案 0 :(得分:0)

[Event.start] <= [Timeframe.start] AND [Event.end] >= [Timeframe.start]
OR
[Event.start] BETWEEN [Timeframe.start] AND [Timeframe.end]