Elr*_*hir 0 db2 casting decimal
我正在尝试将数字强制转换为DECIMAL(10,2)。如果我理解得很好,则类似“ 1234567890”的数字应该是有效的DECIMAL(10,2)。但是,当我尝试投射它时,它返回-413错误:
“在数值数据类型转换期间发生溢出或不足”
这是SQL:
select CAST( 1234567890 AS DECIMAL(10,2)) from SYSIBM.SYSDUMMY1;
Run Code Online (Sandbox Code Playgroud)
如我所见,问题在于它要添加两个零小数位,因此总长度为12,这对于(10,2)而言不是有效数字。
实际上,如果我尝试将其转换为(12,2),则它可以工作(显示“ 1234567890.00”)。
我想知道这是一个错误还是我做错了什么。将(CASTING)到(12,2)似乎不是有效的选项,因为它将接受像“ 1234567890.12”这样的数字,该数字对于(10,2)无效。
提前致谢。
的DECIMAL
数据类型是通过提供两个数字指定:
在您的情况下,DECIMAL(10,2)
意味着总共10位数字,其中2位用于比例尺。1234567890
因此,该数字不适合12345678.90
。