MySQL: 10分以上経過した行をすべて削除する 質問する

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

しかし奇妙なことに、これも間違った結果をもたらす

作成日時 CURRENT_TIMESTAMP TIMESTAMPDIFF( 分, 作成日時, 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

ベストアンサー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)

おすすめ記事