我在表中有一列数据类型为decimal(10,2)
,当我尝试在存储过程中更新该列时,我丢失了 2 位精度。
如果我仅将字段更新为单个查询,它工作正常,但在存储过程中它会失去其精度。
例:
UPDATE table
SET decimal(10,2) column = decimal(10, 2) column / 100
示例:197.50
更新时的结果197.00
谢谢
我认为,在您的RDMBS
中,运行时转换会自动完成column / 100
:
-
column
是十进制格式的,并且 -
100
不是十进制格式
因此,您的解决方案正在将100
更改为十进制格式,如下所示:
-
100.00
-
CAST(100 As Decimal(10, 2))
-
(decimal(10, 2) 100)
问题已解决。由于某种原因,/100 在我尝试 * 0.01 时无法保持精度,它有效。