【发布时间】:2011-03-26 21:31:19
【问题描述】:
我的表中有一个时间戳字段。如何删除超过 10 分钟的记录?
试过这个:
DELETE FROM locks WHERE time_created < DATE_SUB( CURRENT_TIME(), INTERVAL 10 MINUTE)
没用。我做错了什么?
编辑:我使用了这个代码:
SELECT time_created, CURRENT_TIMESTAMP, TIMESTAMPDIFF( MINUTE, time_created, CURRENT_TIMESTAMP ) FROM locks
但奇怪的是,这也给出了错误的结果
time_created CURRENT_TIMESTAMP TIMESTAMPDIFF( MINUTE, time_created, CURRENT_TIMESTAMP ) 2010-08-01 11:22:29 2010-08-08 12:00:48 10118 2010-08-01 11:23:03 2010-08-08 12:00:48 10117
【问题讨论】:
-
你的字段是什么类型的?
-
id [int(11)], time_created[timestamp]
-
SELECT DATE_SUB( CURRENT_TIME(), INTERVAL 10 MINUTE)会返回您期望的结果吗?如果没有,请检查服务器时间。 -
@Oden: 11:55:51,
SELECT CURRENT_TIMESTAMP给出 2010-08-08 11:56:25 但TIMEDIFF( CURRENT_TIMESTAMP, time_created )也给出了错误的数字。 -
你上一个例子有什么问题?给出的时间戳之间有 7 天 37-38 分钟。这相当于 10117-10118 分钟...