1. 程式人生 > 實用技巧 >Sql Server 資料型別

Sql Server 資料型別

資料型別 decimal

格式decimal [ (p[ ,s] ) ]

  其中p是精度(即整數位數+小數位數),該精度必須是從 1 到最大精度 38 之間的值,預設精度為 18。

  s是小數位數(小數點右側儲存的十進位制數字位數),數值必須介於 0 和 p 之間,預設的確定位數為 0。

示例 :

-- 小數位第(小數位數+1)位會四捨五入
select @x=123456.0001480 
select @x  -- 輸出結果 123456.0001
select @x=12345.0001550  -- 小數位
select @x  -- 輸出結果 123456.0002

/*
 * 下面這個賦值報錯 ‘將 numeric 轉換為資料型別 numeric 時出現算術溢位錯誤。’
 * 報錯原因:由於整數位數最大為10-4,這裡賦值了一個整數部分為7位的值
 
*/ select @x=1234567.0001550

decimal 等價於 decimal(18,0) 其中18是精度(即整數部分),0是小數位數

示例:

declare @y decimal

select @y=38.13764
select @y -- 輸出 38  ,第0+1位四捨五入
select @y=38.63764
select @y -- 輸出 39  ,第0+1位四捨五入

select @y=123456789012345678
select @y -- 輸出 123456789012345678

select @y=1234567890123456789
select @y --
輸出 將 numeric 轉換為資料型別 numeric 時出現算術溢位錯誤 ,原因:長度超過預設18