Подтвердить что ты не робот

MySQL: удалить все строки старше 10 минут.

У меня есть поле timestamp в моей таблице. Как удалить записи старше 10 минут?

Пробовал это:

DELETE FROM locks WHERE time_created < DATE_SUB( CURRENT_TIME(), INTERVAL 10 MINUTE)

Не работает. Что я делаю неправильно?

EDIT: я использовал этот код:

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
4b9b3361

Ответ 1

Если time_created - это временная метка unix (int), вы должны иметь возможность использовать что-то вроде этого:

DELETE FROM locks WHERE time_created < (UNIX_TIMESTAMP() - 600);

(600 секунд = 10 минут - очевидно)

В противном случае (если time_created - timestamp mysql), вы можете попробовать следующее:

DELETE FROM locks WHERE time_created < (NOW() - INTERVAL 10 MINUTE)