Удаление записей до определенной даты

Как мне удалить все записи из таблицы MySQL до определенной даты, где столбец даты находится в формате DATETIME?

Пример даты и времени: 2011-09-21 08:21:22.


person Hard worker    schedule 02.12.2011    source источник


Ответы (3)


Это помогло мне удалить данные на основе разных атрибутов. Это опасно, поэтому убедитесь, что вы сделали резервную копию базы данных или таблицы, прежде чем делать это:

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

Теперь вы можете выполнить операцию удаления:

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

Это удалит все данные за один день. Для удаления данных до 6 месяцев:

delete from table_name where column_name < DATE_SUB(NOW() , INTERVAL 6 MONTH)
person Maddy    schedule 04.04.2012
comment
Это как раз то, что мне было нужно, спасибо. Единственная путаница для меня заключалась в том, что вы должны писать 6 МЕСЯЦЕВ, а не 6 МЕСЯЦЕВ, поскольку MySQL не распознает это. Это отличный способ управлять журналами аудита. - person Tony Payne; 16.01.2015

Показать результат до вчерашнего дня

WHERE DATE(date_time) < CURDATE()

Показать результаты 10 дней

WHERE date_time < NOW() - INTERVAL 10 DAY

Чтобы показать результаты до 10 дней

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

Это будет работать для вас

Вы можете найти такие даты

SELECT DATE(NOW() - INTERVAL 11 DAY)
person Harano Prithibi    schedule 04.10.2016

Это еще один пример использования определенных имен столбцов/таблиц.

DELETE FROM jos_jomres_gdpr_optins WHERE `date_time` < '2020-10-21 08:21:22';
person Joniale    schedule 24.11.2020