2011-12-02 13 views

Respuesta

75
DELETE FROM table WHERE date < '2011-09-21 08:21:22'; 
+1

Y yo que estaba haciendo algo así como 'antes' como palabra clave ... – Tominator

16

Esto me ayudó a eliminar los datos en función de diferentes atributos. Esto es peligroso así que asegúrese de copia de seguridad de base de datos o la tabla antes de hacerlo:

mysqldump -h hotsname -u username -p password database_name > backup_folder/backup_filename.txt 

ya se puede realizar la operación de eliminación:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 1 DAY) 

Esto eliminará todos los datos anteriores a un día. Para borrar los datos de antes de los 6 meses:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 6 MONTH) 
+0

Eso era justo lo que necesitaba, gracias. La única confusión para mí fue que tienes que escribir "6 MESES", no "6 MESES", ya que MySQL no lo reconoce. Esta es una gran manera de mantener los registros de auditoría manejables. –

5

Para mostrar resultados hasta ayer

WHERE DATE(date_time) < CURDATE() 

Para mostrar resultados de 10 días

WHERE date_time < NOW() - INTERVAL 10 DAY 

Para mostrar resultados antes de 10 días

WHERE DATE(date_time) < DATE(NOW() - INTERVAL 10 DAY) 

Esto funcionará para usted

Puede encontrar las fechas como esta

SELECT DATE(NOW() - INTERVAL 11 DAY) 
+0

esto es realmente útil. –

Cuestiones relacionadas