5

Timestamp カラムに基づいて MYSQL で 6 か月以上経過したアイテムを返し、それらを削除するにはどうすればよいですか? テーブルが成長し続けないように、テーブル内の 6 か月を超えるアイテムを削除できるようにしたいのですが、そのための正確なクエリは何ですか?

4

2 に答える 2

18

タイムスタンプ列の値に基づいて 6 か月より古いすべての行を検索するクエリを次に示します。

select id
from your_table
where your_timestamp_column <= (now() - interval 6 month);
于 2013-01-11T17:35:44.270 に答える
7

これを試して:

DATEDIFF関数の使用:

SELECT * FROM tableName  
WHERE DATEDIFF(CURDATE(), colName) > 180;

DELETE FROM tableName  
WHERE DATEDIFF(CURDATE(), colName) > 180;

DATE_SUB関数の使用:

SELECT * FROM tableName  
WHERE colName < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);

DELETE FROM tableName  
WHERE colName < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);
于 2013-01-11T17:46:08.847 に答える