SQL Server 2005计算 - 十进制截断?

时间:2014-01-24 19:44:26

标签: sql sql-server-2005 decimal truncation

我正在更新case语句中的表,如下所示:

更新MyTable 设置FieldC = (情况

...

当FieldA ='X'时,FieldB *(600/10000)/ 365

...

否则为null 结束) 来自MyTable

FieldB被赋予一个整数,而Field C是一个浮点数。

在FieldA为X且FieldB为'7'的情况下,我得到的结果是0.当小数值为0.00115068时,小数点上没有其他...如果我将公式更改为“... FieldB * .06 / 365“我得到了不同的结果 - 我得到0.00115并且缺少十进制的剩余部分。

为什么会这样?

提前致谢...

1 个答案:

答案 0 :(得分:0)

如果所有表达式都是整数,则SQL Server使用整数计算。您可以通过e来解决这个问题。 G。使用

FieldB * (600.0 / 10000) / 365