テーブルにタイムスタンプ フィールドがあります。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)