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

4

2 回答 2

4

它在演员表之前进行除法操作。当您将两个整数相除时,结果也是一个整数,这意味着任何小数部分都会被截断。在这种情况下,这会让你0得到结果。零施法到decimal(10,5)还是刚刚好0.00000

这应该给出正确的结果:

CAST((80/2080.0) as decimal(10, 5))
于 2013-07-15T17:54:09.193 回答
0
CAST(80 as decimal(10, 5))/2080
于 2013-07-15T17:55:23.310 回答