在試圖回答這裏的另一個問題我已經創建了下面的數據結構和行:我已經執行以下查詢SQL小數類型 - 精密和規模差異
create table [resource] (Name varchar(16),date datetime, project varchar(16),hours int)
INSERT INTO resource
values ('Andy Sandy', '2013-03-02', 'Enhancements',40)
INSERT INTO resource
values('Fred Jones', '2013-10-02', 'Enhancements',40)
:
select
case when sum(hours) > 0 Then
CAST(SUM(hours) as DECIMAL(5,2))/40
else 0 end as [hours],
[DATE]
from resource group by date
結果是這樣的:
Hours Date
1.000000 2013-03-02 00:00:00.000
1.750000 2013-10-02 00:00:00.000
當我將小時鑄造成小數時,我指定了一個精度5的離子和2的比例。我不明白爲什麼這個數字是這樣的。如果我沒有指定精度和縮放比例,那麼結果是一樣的。爲什麼是這樣?
我得到這個與你提供的數據:DATE小時 - ------------------------------------- ------------- ---------- 1.000000 2013-03-02 00:00:00.000 1.000000 2013-10-02 00:00:00.000 – 2013-03-02 19:22:22
除法的結果是'numeric(9,6)'。將40當作'numeric(2,0)',然後將精度和比例插入[BOL中的公式](http://msdn.microsoft.com/zh-cn/library/ms190476%28v=SQL.90% 29.aspx) – 2013-03-02 19:22:31
$&%^%愚蠢的規則意味着我不能通過發佈不適當的答案來合理地設置此格式,而不會丟失代表。 – 2013-03-02 19:22:59