SSIS派生列舍入值

时间:2014-06-19 20:31:21

标签: sql sql-server sql-server-2008 ssis

我在SSIS查询中选择的其中一列TransTotal,其值如下:

----
4615
3845
8706
8725
4205
----

我的派生列,我需要插入一个小数,所以我添加了这个表达式:

(DT_NUMERIC,10,2)(TransTotal / 100)

期待结果如下:

-----
46.15
38.45
87.06
87.25
42.05
-----

但相反,他们看起来像:

-----
46.00
38.00
87.00
87.00
42.00
-----

我做错了什么?

1 个答案:

答案 0 :(得分:5)

如果TransTotalINT,那么您的代码当前首先执行整数除法(TransTotal / 100,这意味着8725/100等于87,因为它是一个整数)然后将其转换为NUMERIC。您需要先将TransTotal转换为NUMERIC,然后执行除法:

((DT_NUMERIC,10,2) TransTotal) / 100