У меня есть поле метки времени в моей таблице. Как удалить записи старше 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
Если time_created является временной меткой unix (int), вы должны быть в состоянии использовать что-то вроде этого:
DELETE FROM locks WHERE time_created < (UNIX_TIMESTAMP() - 600);
(600 секунд = 10 минут - очевидно)
В противном случае (если time_created является временной меткой mysql), вы можете попробовать следующее:
DELETE FROM locks WHERE time_created < (NOW() - INTERVAL 10 MINUTE)