mysql - 截断日期时间早于 n 天的表

标签 mysql truncate

我要truncate带有日期时间子句的表中的一些记录。

This链接有解决方案,但它对我不起作用。

TRUNCATE TABLE 'meter_to_sim_mapping' WHERE 'meter_to_sim_mapping'.'mapped_at' <=

在上面的 where 子句中,我想添加日期时间值。值为 2018-04-02 16:03:52 .查询应该删除该日期之前的所有记录。

如何截断带有日期时间的表格?

如有任何帮助,我们将不胜感激。

最佳答案

您需要使用DELETE

DELETE FROM TABLE_NAME
WHERE DATE_COLUMN < NOW() - INTERVAL N DAY

DELETE FROM TABLE_NAME
WHERE CAST(DATE_COLUMN AS DATE) < STR_TO_DATE('1-01-2012', '%d-%m-%Y')  - INTERVAL N DAY

代替 NOW() 您可以使用日期时间值

STR_TO_DATE('12-01-2014 00:00:00','%m-%d-%Y %H:%i:%s')

演示

http://sqlfiddle.com/#!9/4607a6/1

关于mysql - 截断日期时间早于 n 天的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50020324/

相关文章:

php - 在 php mysql while 循环上运行 jquery 函数

postgresql - Postgres : TRUNCATE and COPY in one transaction

postgresql - 如何将日期截断到一周的开始(星期日)?

javascript - chop 插件问题

log4j 截断堆栈跟踪

mysql - 如何从 matlab 变量(数组/单元格)中选择 mysql 表

mysql 删除标题中带有单引号的数据库

php - Mysql选择不同的ID并只选择第一行

mysql - #1052 - 字段列表中的列 'bookings.chauffeur_req' 不明确

php - 如何 chop div中的文本