我用的CURDATE() 单独运行的时候没有问题 但是我放在别的MYSQL语句中的时候就报错了
UPDATE 日期
SET 今天 = (SELECT COUNT(*) FROM 全部
WHERE 时间 = (SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY)) ) where id='1'
这个就报错
错误代码: 1292
Truncated incorrect datetime value: ''
SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY))这个能执行出来 是2021年12月30
SELECT COUNT(*) FROM 全部
WHERE 时间 = (SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY))这个也能执行 并且数量是对的 但是放到更新语句中就报了上面的那个错误
没人来回答一下吗
使用CONVERT(varchar(100), DATEADD(DAY,-1,GETDATE()), 23)代替DATE_SUB(CURDATE(),INTERVAL 1 DAY))试下
UPDATE 日期 SET 今天 = (SELECT COUNT(*) FROM 全部 WHERE 时间 = (SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY) from dual ) ) where id='1'
"今天"这个字段是什么类型?
这个问题主要出在把数已经查出来但是用UPDATE更新的时候报出的错误
像是这条语句SELECT COUNT() FROM 全部 WHERE 时间 = (SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY)) 单独执行的时候结果为3
但是把这条语句嵌套进UPDATE 日期 SET 今天 = (SELECT COUNT() FROM 全部 WHERE 时间 = (SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY)) ) where id='1'以后就报错了Truncated incorrect date value: ''
没想明白是怎么回事
或者这个语句还能怎么写 主要是把另一个表中日期为昨天的数据数量跟新到这个表中