我面临一个与MySQL时间相关的奇怪问题,我根本无法解决。
Table:landing
landingPage (varchar) - mylanding.html
starttime (time): 18:00:00
endTime (time) : 04:00:00
要求是在18:00:00到04:00:00(下午6点到凌晨4点)之间显示landingPage。我正在使用以下查询
select landingPage from landing where currentTime between starttime and endtime.
以上查询的工作时间为18:00:00至23:59:59。但是在午夜之后它没有显示出任何价值。对于一个实例
select landingPage from landing where '02:00:00' between starttime and endtime.
我甚至尝试了以下查询但午夜后同样的问题。
select landingPage from landing where currentTime>starttime AND currentTime<endtime
这是一个Java应用程序,我应该在这里使用AM / PM逻辑吗?
答案 0 :(得分:1)
问题来自于午夜之后,小时会回到00:00:00
,因此间隔[18:00:00, 04:00:00]
为空:当不考虑日期时,任何小时都不能超过{{1在同一天低于18h
的时候。
您可以实施以下逻辑:显示目标网页
4h
:则表示小时在午夜和04:00:00
之间; 04:00:00
好:这意味着小时介于18:00:00
和午夜之间。查询变为:
18:00:00