我该如何使用cast函数并获得正确的结果

时间:2013-07-15 17:51:31

标签: sql

我通过取消强制转换功能得到了错误的结果。它应该很简单,但我无法弄清楚。需要帮助。

SELECT        PRCo, Employee, LastName, FirstName, MidName, SortName, SSN, HireDate, DATEDIFF(month, HireDate, GETDATE()) / 12 AS Years,
               CAST((80/2080) as decimal(10, 5))
FROM           AAAA

80/2080列应为0.038470,但对所有记录显示0.00000

2 个答案:

答案 0 :(得分:4)

在演员之前进行分割操作。除以两个整数后,结果也是一个整数,表示任何小数部分都被截断。在这种情况下,结果会留下0。零投射到decimal(10,5)仍然只是0.00000

这应该给出正确的结果:

CAST((80/2080.0) as decimal(10, 5))

答案 1 :(得分:0)

CAST(80 as decimal(10, 5))/2080