我正在尝试向DECIMAL(10,2)投射一个数字。 如果我理解得很好,像“1234567890”这样的数字应该是有效的 DECIMAL(10,2)。 但是当我尝试施放它时,它会返回-413错误:
“在数字数据类型转换期间发生的溢出或下溢”
这是SQL:
single
正如我所看到的,问题在于它增加了两个零小数位, 所以总长度是12,这对于a(10,2)来说不是有效数字。
事实上,如果我尝试将它CAST到(12,2)它可以工作(显示“1234567890.00”)。
我想知道这是错误还是我做错了什么。 铸造到(12,2)似乎不是一个有效的选择,因为它会 接受“1234567890.12”之类的数字,这些数字不应对(10,2)有效。
提前致谢。
答案 0 :(得分:5)
通过提供两个数字来指定DECIMAL
data type:
在您的情况下,DECIMAL(10,2)
表示总共10位数,其中2位用于比例。因此1234567890
号码不合适,12345678.90
会。