通过以下查询,我想选择所有超过允许的持续时间(保存为秒数)并且不再有效的广告:
SELECT *
FROM adverts
WHERE TIME_TO_SEC(timediff(now(),adverts.stamp_created))>adverts.duration
我的问题:如果今年创建广告的时间(= stamp_created,TIMESTAMP),此查询正常工作,time_to_sec函数以秒为单位返回正确的时差。
但是,如果创建广告的时间与当前广告的时间不同,例如在2014年,我会得到错误的时差值,但查询不起作用。可能是什么原因?我如何调整查询?
答案 0 :(得分:0)
如何通过添加秒来重新描述条件,而不是采取差异?
SELECT *
FROM adverts a
WHERE DATE_ADD(a.stamp_created, interval a.duration second) > NOW();