Удаление записей до определенной даты - PullRequest
51 голосов
/ 02 декабря 2011

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

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

Ответы [ 3 ]

99 голосов
/ 02 декабря 2011
DELETE FROM table WHERE date < '2011-09-21 08:21:22';
20 голосов
/ 05 апреля 2012

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

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)
8 голосов
/ 04 октября 2016

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

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...