2013-07-15 64 views
0

我通过使用投射函数得到了错误的结果。它应该很简单,但我无法弄清楚。需要帮忙。如何使用投射功能并获得正确的结果

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的所有记录

+0

其中RDBMS是您使用? – Barranka

回答

4

它做除法运算投之前。当你分两个整数时,结果也是一个整数,意味着任何小数部分被截断。在这种情况下,结果为0。零投到decimal(10,5)仍然只是0.00000

这应该给一个正确的结果:

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

非常感谢。我总是忘记这部分。 :) –

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

非常感谢你 –