【发布时间】:2015-01-23 02:52:39
【问题描述】:
我有代表事件的数据。重要的列是
StartDate (date)
StartTime (time)
EndDate (date)
EndTime (time)
我的 where 子句是
WHERE HOUR(L.StartTime) <= 14 AND HOUR(L.EndTime) > 14
AND DATE(NOW()) >= L.StartDate AND DATE(NOW()) <= L.EndDate
AND L.StartDate <= '2015-01-22' AND L.EndDate >= '2015-01-22'
这将返回我在下午 2 点之前或下午 2 点开始以及在下午 3 点或更晚结束的任何事件。 StartDate 和 EndDate 是这个事件的范围,例如一个事件可能在一月份的每一天发生,或者更长的时间。
现在的问题是,如果其中一个事件有这样的数据:
StartDate | StartTime | EndDate | EndTime
2015-01-01 | 14:00:00 | 2015-12-31 | 01:00:00
意思是活动从下午 2 点到次日凌晨 1 点开始。我的查询不会返回该行,因为
AND HOUR(L.EndTime) > 14
条款。
【问题讨论】: