CAST / CONVERT问题算术溢出错误

问题描述 投票:0回答:1

[SELECT有效,但UPDATE无效。

CASTCONVERT的每个版本>

我遇到此错误:

将整数转换为数据类型数值的算术溢出错误

[当我尝试这样做时:

$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 =“ ...

sql sql-server sql-server-2014
1个回答
0
投票

事实证明,这个谜底更深,但是我找到了解决方法,所以我照顾了它。

© www.soinside.com 2019 - 2024. All rights reserved.