截短日期时间早于n天的表

8yoxcaq7  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(362)

我想 truncate 包含date time子句的表中的一些记录。
这个链接有一个解决方案,但它不适合我。 TRUNCATE TABLE 'meter_to_sim_mapping' WHERE 'meter_to_sim_mapping'.'mapped_at' <= 在上面的where子句中,我想添加日期时间值。价值是 2018-04-02 16:03:52 . 查询应删除此日期之前的所有记录。
如何用日期时间截断表?
任何帮助都将不胜感激。

voase2hg

voase2hg1#

以下示例可能适用于您:

DELETE FROM TABLE_NAME
WHERE DATE_COLUMN = DATE_SUB("2018-04-02 16:03:52", INTERVAL 10 DAY);

您可以根据您的要求进行相应的更改。
reference:mysql date_sub()功能

fv2wmkja

fv2wmkja2#

你需要使用 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()` 可以使用datetime值

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

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

相关问题