Deleting records before a certain date

后端 未结 4 733
暗喜
暗喜 2020-12-13 11:54

How would I go about deleting all records from a MySQL table from before a certain date, where the date column is in DATETIME format?

An example datetime is 20

相关标签:
4条回答
  • 2020-12-13 12:35
    DELETE FROM table WHERE date < '2011-09-21 08:21:22';
    
    0 讨论(0)
  • 2020-12-13 12:37

    This is another example using defined column/table names.

    DELETE FROM jos_jomres_gdpr_optins WHERE `date_time` < '2020-10-21 08:21:22';
    
    0 讨论(0)
  • 2020-12-13 12:42

    To show result till yesterday

    WHERE DATE(date_time) < CURDATE()
    

    To show results of 10 days

    WHERE date_time < NOW() - INTERVAL 10 DAY
    

    To show results before 10 days

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

    These will work for you

    You can find dates like this

    SELECT DATE(NOW() - INTERVAL 11 DAY)
    
    0 讨论(0)
  • 2020-12-13 12:45

    This helped me delete data based on different attributes. This is dangerous so make sure you back up database or the table before doing it:

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

    Now you can perform the delete operation:

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

    This will remove all the data from before one day. For deleting data from before 6 months:

    delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 6 MONTH)
    
    0 讨论(0)
提交回复
热议问题