我在表x中有一个列,它是一个十进制类型:decimal(21,4)
当我输入数字0.00873时,它将其更改为0.0000 任何人都可以解释为什么会发生这种情况,我能做些什么来保存我上面提到的性质数量?
答案 0 :(得分:1)
只是一个假设(我认为在这种情况下根本就没有解决方案,因为没有人可以解释这是什么“那个”你提到正在发生的事情)
我认为SQL Server没有任何内容。您可能需要在UI内部查看此错误的原因。 下面的SQL代码显示了如何将十进制数归零,因为内部类型不一致 - 当输入和输出之间的原始数据存储在不太精确的类型中时。
declare
@dec decimal(21, 4),
@int int;
set @dec = 0.00873;
set @int = @dec;
select @dec [original]
, @int [integer]
, cast(@int as decimal(21, 4)) [cast_back_to_decimal]
结果
original integer cast_back_to_decimal
----------------------------------------
0.0087 0 0.0000