SQL Server DECIMALの型定義外の数値扱いについて
久々にSQL ServerのDECIMAL型を使用したのでメモ。
特に型外の数値がDECIMAL変数に入ったときの挙動について
小数点桁数が大きい場合(下の最後の桁が5)
DECLARE @decimal AS DECIMAL(8,2) SET @decimal = 987654.565 --小数第三位が5 SELECT @decimal
四捨五入される。
987654.57
小数点桁数が大きい場合(下の最後の桁が4)
DECLARE @decimal AS DECIMAL(8,2) SET @decimal = 987654.564 --小数第三位が4 SELECT @decimal
同様に四捨五入される。
987654.56
DECLARE @decimal AS DECIMAL(8,2) SET @decimal = 9876543.564 --整数部が7桁ある! SELECT @decimal
算術オーバーフローが発生する。