decimal(18,4)同decimal(19,1) 之间的区别是什么
我在SQL 里面 用的是 decimal(18,4),但是变理定义的时候,为什么大家都喜欢 用decimal(19,1),我有点晕了

解决方案 »

  1.   

    declare @a decimal(18,4)
    declare @b decimal(19,1)
    set @a=19.1
    set @b=19.1
    select @a,@b
    --decimal(18,4)  18位小数点后面4位
    --decimal(19,1)  19位小数点后面1位
    -----------
    (无列名) (无列名)
    19.1000 19.1
      

  2.   

    1.Decimal 数据包含存储在最小有效数上的数据。在 SQL Server中,小数数据使用 decimal 或 numeric 数据类型存储。存储 decimal 或 numeric 数值所需的字节数取决于该数据的数字总数和小数点右边的小数位数。2.decimal(18,4),decimal(19,1),两者能保存的整数位和小数位不同.
    create table tb(val1 decimal(18,4) , val2 decimal(19,1))
    goinsert into tb values(1234567890123.1234 , 12345678901234567.1)select * from tbdrop table tb/*
    val1                 val2                  
    -------------------- --------------------- 
    1234567890123.1234   12345678901234567.1(所影响的行数为 1 行)
    */
      

  3.   

    精度不同,一个是小数点后面精确4位,一个是精确1位
    注意的是decimal(18,4)总长18位,包括1位小数点和4为小数,也就是说18-1-4=13整数位只有13位
    decimal(19,1)总长19位,17位整数,1位小数