截断的错误日期值:'2020-02-03 12:51:16'

时间:2021-05-28 23:22:54

标签: mysql sql date

我试图从表中删除很多行,但我收到一个错误,任何人都知道这一点

DELETE l,l2 from 
logprocesoitem l 
JOIN logproceso l2 ON l2.id=l.logproceso_id  
where  STR_TO_DATE(l2.createat,'%Y-%m-%d')< DATE_SUB(CURDATE(), INTERVAL 14 MONTH);

enter image description here

2 个答案:

答案 0 :(得分:1)

您的 createat 字段包括时间,但 STR_TO_DATE() 中的格式只允许日期。

STR_TO_DATE(l2.createat,'%Y-%m-%d %H:%i:%s')

如果您想忽略时间,请对结果使用 DATE() 函数:

DATE(STR_TO_DATE(l2.createat,'%Y-%m-%d %h:%i:%s'))

答案 1 :(得分:0)

您正在指定格式 '%Y-%m-%d',但您的数据是 '%Y-%m-%d %H:%i:%s'。但是您根本不需要 STR_TO_DATE;只是比较l2.createat < DATE_SUB...

相关问题