代码之家  ›  专栏  ›  技术社区  ›  MadBoy

将列十进制(18,8)转换为另一列十进制(18,18)

  •  3
  • MadBoy  · 技术社区  · 15 年前

    我有一列的十进制值是18,8。我被要求延长到18岁,18岁,以便在 , .

    ALTER TABLE [dbo].[TransakcjeGotowkowe]
    ALTER COLUMN TransakcjeGotowkoweKwota decimal (18,18) NULL
    
    Msg 8115, Level 16, State 8, Line 1
    Arithmetic overflow error converting numeric to data type numeric.
    The statement has been terminated.
    

    我也试过用GUI来做。没有其他更改只想在之后保存更多数据,。

    2 回复  |  直到 15 年前
        1
  •  5
  •   codingbadger    15 年前

    十进制数据类型由(精度、小数位数)组成

    小数位数是小数点右边的位数。

    如果你想把右边的位数增加到18,你需要提高总的精度。在你的情况下增加10。

    decimal(28,18)

    MSDN Article on Precision & Scale

        2
  •  2
  •   Martin Smith    15 年前

    你需要把它改成 28,18 当前列允许小数点左边有10位数字。

    把它改成 18,18 只允许在 +/-0.999999999999999999

    推荐文章