我有使用MYSQL作为数据库的Rails应用程序。在某些情况下,我必须删除表中的所有记录,这些记录恰好在当前时间之前2小时存储。
我的问题是:
DELETE FROM TABLE_NAME WHERE (NOW() - created_at) > 7200;这里的create_at是datetime列类型。存储格式为"2012-12-04 06:39:44“
我的问题是,上面的查询获取记录,即使记录创建时间只有40到50分钟,并被删除。唯一问题是该记录在其创建时间达到40到50分钟后被删除。
有人能纠正我的疑问吗?我想要MySQL解决方案。请帮帮我
发布于 2012-12-04 19:49:45
如果您想要删除恰好在2小时前创建的记录,则可能需要此命令:
DELETE FROM TABLE_NAME WHERE created_at = NOW() - INTERVAL 2 HOUR或者这个,它将删除2小时前创建的所有记录:
DELETE FROM TABLE_NAME WHERE created_at < NOW() - INTERVAL 2 HOUR发布于 2012-12-04 19:50:53
试试这个::
DELETE FROM TABLE_NAME WHERE TIMEDIFF(NOW(),created_at) < '02:00:00';发布于 2012-12-04 19:52:53
尝试:
DELETE FROM TABLE_NAME WHERE created_at<DATE_SUB(NOW(),INTERVAL 2 HOUR)此查询将删除2小时前创建的所有内容。用等号表示恰好是2小时前(单位为秒)。当然,您可以将日期格式设置为只考虑分钟,但这会减慢查询速度。如果created_at是索引的(我认为应该是索引的),不要对它执行任何函数,这样它就可以使用索引更快地执行delete。
https://stackoverflow.com/questions/13702164
复制相似问题