[SELECT
有效,但UPDATE
无效。
CAST
和CONVERT
的每个版本>
我遇到此错误:
将整数转换为数据类型数值的算术溢出错误
[当我尝试这样做时:
$sql = "UPDATE rentinc ". "SET curr_loss_mo = ROUND(CONVERT(numeric(3,0), DATEDIFF(DAY, missincdate, GETDATE()) / 30), 0) ". "WHERE months2 > 12";
我很确定上面的代码中存在过大的杀伤力,但我正在尝试一切。
我可以去SSMS并运行此SELECT:
SELECT curr_loss_mo, ROUND(CONVERT(numeric(3, 0), DATEDIFF(DAY, missincdate, GETDATE()) / 30), 0) AS DateNumCalc FROM rentinc WHERE months2 > 12
而且效果很好。而且这两列看起来完全一样!
curr_loss_mo
字段为numeric(3,0)
,表中没有试图使用三个以上字符进行更新的值。
所以我为什么会收到此错误?
“将int转换为数值类型的数字的算术溢出错误”
SELECT有效,但UPDATE不起作用。每个版本的CAST和CONVERT都会出现此错误:算术溢出错误将int转换为数值类型的数值当我尝试这样做时:$ sql =“ ...
事实证明,这个谜底更深,但是我找到了解决方法,所以我照顾了它。