Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Löschen von Datensätzen, die älter als ein Monat/30 Tage sind

DELETE FROM archive
WHERE STR_TO_DATE(SUBSTR(created_date, 0, 25), '%a, %d %b %Y %H:%i:%S') <
      DATE_SUB(NOW(), INTERVAL 30 DAY);

Sie können dann den PHP-Code zur Berechnung des Datumsbereichs entfernen und MySQL dies für Sie erledigen lassen.

Wenn Sie die Datenbankstruktur kontrollieren können, ist es viel effizienter, das Datum in einem DATETIME-Feld zu speichern, anstatt STR_TO_DATE aufzurufen in jeder Datenbankzeile.