Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Excluindo registros com mais de um mês/30 dias

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

Você pode então remover o código PHP para calcular o intervalo de datas e deixar o MySQL lidar com isso para você.

Se você tiver controle sobre a estrutura do banco de dados, será muito mais eficiente armazenar a data em um campo DATETIME, em vez de chamar STR_TO_DATE em cada linha do banco de dados.