CAST / CONVERT问题算术溢出错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAST / CONVERT问题算术溢出错误相关的知识,希望对你有一定的参考价值。
[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 =“ ...
答案
事实证明,这个谜底更深,但是我找到了解决方法,所以我照顾了它。
以上是关于CAST / CONVERT问题算术溢出错误的主要内容,如果未能解决你的问题,请参考以下文章
SQL 将expression 转换为数据类型 datetime 时出现算术溢出错误
(SQL)将 expression 转换为数据类型 int 时发生算术溢出错误