我进行了相当多的搜索,发现了一些最终对我不起作用并且无法理解原因的解决方案。
我有一个带有时间戳列的表。此列的 MySQL 类型是“日期时间”。我从 PHP 中将以下内容插入到此表中。
date('Y-m-d H:i:s')
这里输入的是 MySQL 日期时间的正确值。
2012-06-28 15:31:46
我想使用此列删除早于 10 分钟的行。我正在运行以下查询,但它不起作用。它影响 0 行。
DELETE FROM adminLoginLog WHERE timestamp < (NOW() - INTERVAL 10 MINUTE);
谁能解释我做错了什么以及为什么它不能正常工作?
谢谢。
最佳答案
由于 TIMESTAMP() 是返回当前时间戳的内置函数,因此您的查询将永远不会返回任何结果。
尝试将列用反引号括起来,让 MySQL 知道您的意思是该列,而不是保留字:
DELETE FROM adminLoginLog WHERE `timestamp` < (NOW() - INTERVAL 10 MINUTE);
关于php - MySQL删除超过X分钟的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11252704/