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
.
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
.
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)
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)
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.