web-dev-qa-db-fra.com

Suppression d'enregistrements avant une certaine date

Comment puis-je supprimer tous les enregistrements d'une table MySQL avant une certaine date, où la colonne de date est au format DATETIME?

Un exemple de date/heure est 2011-09-21 08:21:22.

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

Cela m'a aidé à supprimer des données basées sur différents attributs. Ceci est dangereux alors assurez-vous de sauvegarder la base de données ou la table avant de le faire:

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

Vous pouvez maintenant effectuer l'opération de suppression:

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

Cela supprimera toutes les données d'avant un jour. Pour supprimer des données antérieures à 6 mois:

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

Montrer les résultats jusqu'à hier

WHERE DATE(date_time) < CURDATE()

Montrer les résultats de 10 jours

WHERE date_time < NOW() - INTERVAL 10 DAY

Montrer les résultats avant 10 jours

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

Ceux-ci travailleront pour toi

Vous pouvez trouver des dates comme celle-ci

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