web-dev-qa-db-ja.com

特定の日付より前にレコードを削除する

日付列がDATETIME形式である特定の日付より前のMySQLテーブルからすべてのレコードを削除するにはどうすればよいですか?

日時の例は2011-09-21 08:21:22

53
Hard worker
DELETE FROM table WHERE date < '2011-09-21 08:21:22';
103
Michael Mior

これにより、さまざまな属性に基づいてデータを削除できました。これは危険ですので、実行する前に必ずデータベースまたはテーブルをバックアップしてください。

mysqldump -h hotsname -u username -p password database_name > backup_folder/backup_filename.txt

これで、削除操作を実行できます。

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 1 DAY)

これにより、1日前からすべてのデータが削除されます。 6か月前より前のデータを削除する場合:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 6 MONTH)
22
Maddy

昨日まで結果を表示するには

WHERE DATE(date_time) < CURDATE()

10日間の結果を表示するには

WHERE date_time < NOW() - INTERVAL 10 DAY

10日前に結果を表示するには

WHERE DATE(date_time) < DATE(NOW() - INTERVAL 10 DAY)

これらはあなたのために働くでしょう

このような日付を見つけることができます

SELECT DATE(NOW() - INTERVAL 11 DAY)
9
Harano Prithibi