2013-02-13 49 views
0

我有一个查询,在某些情况下不适用于我,我认为这是因为在某些情况下,时间回到过去的一天结束时间是小于开始时间。这是查询。MySQL之间的比较过去一天结束的时间

SELECT reminder_cfg.id, default_time, day_prior, timezone 
FROM reminder_cfg, uc_users 
WHERE reminder_cfg.id = 5 
AND reminder_cfg.id = uc_users.id 
AND default_time BETWEEN TIME(NOW() + INTERVAL 5 HOUR) AND TIME(NOW() + INTERVAL 10 HOUR) 

这真的踢了我的,但几天了。

这是一个Perl脚本的一部分,我确信有更好的方法可以做,但我很难过。

+0

'default_time'的数据类型是什么?它是'TIME'还是'DATETIME'? – 2013-02-13 01:55:29

回答

0

使用DATE_ADD添加两个日期。

SELECT reminder_cfg.id, default_time, day_prior, timezone 
FROM reminder_cfg, uc_users 
WHERE reminder_cfg.id = 5 
AND reminder_cfg.id = uc_users.id 
AND default_time BETWEEN TIME(DATE_ADD(NOW(), INTERVAL 5 HOUR)) AND TIME(DATE_ADD(NOW() + INTERVAL 10 HOUR))