MySQL: Apagando registros antes de uma determinada data
Olá! Aprenda neste post como apagar registros antigos de uma tabela.
Utilizaremos uma função nativa do MySQL, chamada DATE_SUB().
Sintaxe: DATE_SUB(date, INTERVAL expr unit)
// NOME_COLUNA é do tipo DATETIME // para excluir registros antes de 3 meses DELETE FROM NOME_TABELA WHERE NOME_COLUNA < DATE_SUB(NOW(), INTERVAL 3 MONTH); // para excluir registros antes de 1 dia DELETE FROM NOME_TABELA WHERE NOME_COLUNA < DATE_SUB(NOW(), INTERVAL 1 DAY); // para excluir registros de uma data específica DELETE FROM NOME_TABELA WHERE NOME_COLUNA < '2016-06-10 07:00:00'; // para excluir registros de uma data específica DELETE FROM NOME_TABELA WHERE DATE(NOME_COLUNA) < '2016-06-10'; |
Para saber quantas linhas serão excluídas, você pode usar o select abaixo:
SELECT COUNT(*) FROM NOME_TABELA WHERE NOME_COLUNA < DATE_SUB(NOW(), INTERVAL 3 MONTH) |
Para saber qual a data de corte, use:
SELECT DATE_SUB(NOW(), INTERVAL 3 MONTH); |
Lembrando que para exclusão em banco de dados é bom que se faça um backup antes, beleza? 🙂
Obrigado, me ajudou muito, eu usei interval 15 day, no calendário da igreja:
http://www.pibdouradina.com.br/calendario
muito bom! valew