SQL:当值不在同一年时,time_diff返回错误的值

时间:2015-01-27 17:51:32

标签: mysql sql

通过以下查询,我想选择所有超过允许的持续时间(保存为秒数)并且不再有效的广告:

SELECT * 
FROM adverts 
WHERE TIME_TO_SEC(timediff(now(),adverts.stamp_created))>adverts.duration

我的问题:如果今年创建广告的时间(= stamp_created,TIMESTAMP),此查询正常工作,time_to_sec函数以秒为单位返回正确的时差。

但是,如果创建广告的时间与当前广告的时间不同,例如在2014年,我会得到错误的时差值,但查询不起作用。可能是什么原因?我如何调整查询?

1 个答案:

答案 0 :(得分:0)

如何通过添加秒来重新描述条件,而不是采取差异?

SELECT * 
FROM adverts a
WHERE DATE_ADD(a.stamp_created, interval a.duration second) > NOW();