sql 聚合函數 sum 消息 8115,級別 16 將 expression 轉換爲數據類型 int 時出現算術溢出錯誤。

剛纔同事問我資源容量有多大,自己得意的寫了一句sql,但是賊打臉。報個大BUG

select sum(sourcesize) from T_Source 

消息 8115,級別 16,狀態 2,第 2 行
將 expression 轉換爲數據類型 int 時出現算術溢出錯誤。

查了一下,網上說轉換爲bigint  也有寫的轉換爲 decimal 和float  試了一下,確實好使。


bigint:從 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型數據(所有數字)。存儲大小爲 8 個字節。

decimal:數字型,128bit,不存在精度損失,常用於銀行帳目計算。(28個有效位)

double:雙精度實型,含字節數爲8,64bit數值範圍-1.7E308~1.7E308(15個有效位)

float:浮點型,含字節數爲4,32bit,數值範圍爲-3.4E38~3.4E38(7個有效位


我自己轉換成了decimal 格式  :

select sum(sourcesize) from T_Source 

之後除以1024進製得到了資源總體的大小


參考文檔:

1.http://www.studyofnet.com/news/214.html

2.http://bbs.csdn.net/topics/350111462


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章