sql >> Database >  >> RDS >> Mysql

Records verwijderen die ouder zijn dan een maand/30 dagen

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

U kunt dan de PHP-code voor het berekenen van het datumbereik verwijderen en MySQL dit voor u laten afhandelen.

Als u controle heeft over de databasestructuur, is het veel efficiënter om de datum op te slaan in een DATETIME-veld, in plaats van STR_TO_DATE aan te roepen. op elke databaserij.



  1. Snelste controle of rij bestaat in PostgreSQL

  2. Hoe kan ik de laatste twee woorden in een zin in PostgreSQL matchen?

  3. Tabeveldstatus automatisch bijwerken systeemdatum controleren met behulp van query in mysql en java

  4. Samenvatting van MySQL-detailrecords die overeenkomen met IP-adresbereiken - mySQL Jedi Knight vereist