我有一列聲明爲十進制(4,4)。目前它存儲0.0400作爲值。現在我需要更新從0.0400存儲到9.95.I採用以下方式查詢值:在SQL Server 2008中使用decimal數據類型遇到算術溢出錯誤
Update <tablename>
set <columnname>= 9.95
where <condition>
當我嘗試執行,我得到以下錯誤: 算術溢出錯誤轉換數字數據類型的數字。 該聲明已被終止。
請幫忙。
我有一列聲明爲十進制(4,4)。目前它存儲0.0400作爲值。現在我需要更新從0.0400存儲到9.95.I採用以下方式查詢值:在SQL Server 2008中使用decimal數據類型遇到算術溢出錯誤
Update <tablename>
set <columnname>= 9.95
where <condition>
當我嘗試執行,我得到以下錯誤: 算術溢出錯誤轉換數字數據類型的數字。 該聲明已被終止。
請幫忙。
如果你寫decimal(4,4)
,什麼數據庫聽到的是:
所以一個decimal(4,4)
可以存儲範圍0.0000
至0.9999
(及其負面等值)。但是9.95
超出該範圍,所以它會返回一個錯誤。
定義列decimal(4,4)
是說
我將有4位總,其中4來小數點
爲了表示9.95
後相當於,你需要將其存儲爲9.9500
以滿足'小數點後4位'的條件。但是這現在超過了'最大4位數'的條件,所以不能轉換。
您至少需要decimal(5, 4)
以這種方式存儲9.95作爲小數。
幾年前我有類似的問題,這裏是我的理解。
十進制(TotalDigitsIncludingDecimal,小數位數)
例如:值= 50.05聲明十進制(4,2) 例如:值= 5000.0005聲明十進制(8,4)