0

キャスト関数を unsing すると間違った結果が得られます。単純なはずですが、わかりません。助けが必要。

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

キャストに分割操作を行っています。2 つの整数を除算すると、結果も整数になります。つまり、小数部分は切り捨てられます。この場合、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 に答える