DB2转换为DECIMAL

时间:2017-06-12 08:13:18

标签: casting db2 decimal

我正在尝试向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)有效。

提前致谢。

1 个答案:

答案 0 :(得分:5)

通过提供两个数字来指定DECIMAL data type

  1. 第一个整数是数字的精度;也就是说,总的位数;它可能在1到31之间。
  2. 第二个整数是数字的比例;也就是说,小数点右边的位数;它的范围可以从0到数字的精度。
  3. 在您的情况下,DECIMAL(10,2)表示总共10位数,其中2位用于比例。因此1234567890号码不合适,12345678.90会。