2013-07-15 101 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

非常感謝你 –