72 votes

Suppression des enregistrements avant une certaine date

Comment puis-je supprimer tous les enregistrements d'une table MySQL antérieurs à une certaine date, la colonne date étant au format DATETIME ?

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

142voto

Michael Mior Points 13475
DELETE FROM table WHERE date < '2011-09-21 08:21:22';

26voto

Latha Doddikadi Points 582

Cela m'a permis de supprimer des données en fonction de différents attributs. Cette opération étant dangereuse, assurez-vous de sauvegarder la base de données ou la table avant de la réaliser :

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 les données d'avant 6 mois :

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

0 votes

C'était juste ce dont j'avais besoin, merci. La seule confusion pour moi était que vous devez écrire "6 MOIS" et non "6 MOIS" car MySQL ne le reconnaît pas. C'est un excellent moyen de garder les journaux d'audit gérables.

14voto

Harano Prithibi Points 149

Pour montrer le résultat jusqu'à hier

WHERE DATE(date_time) < CURDATE()

Pour montrer les résultats de 10 jours

WHERE date_time < NOW() - INTERVAL 10 DAY

Pour obtenir des résultats avant 10 jours

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

Ceux-ci vous conviendront

Vous pouvez trouver des dates comme celle-ci

SELECT DATE(NOW() - INTERVAL 11 DAY)

0voto

Joniale Points 388

Voici un autre exemple d'utilisation de noms de colonnes/tables définis.

DELETE FROM jos_jomres_gdpr_optins WHERE `date_time` < '2020-10-21 08:21:22';

0voto

Riya Runjhun Points 1

Si vous cherchez Oracle SQL, cela pourrait vous aider :

Delete from table_name WHERE column_name < sysdate - INTERVAL '10' DAY

Et vérifiez le format que sysdate retient.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X