我试图从表中删除很多行,但我收到一个错误,任何人都知道这一点
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);
答案 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...