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

У меня есть поле метки времени в моей таблице. Как удалить записи старше 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
56
задан HyderA 6 November 2014 в 14:26
поделиться

1 ответ

Если 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)
133
ответ дан 26 November 2019 в 17:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: