首页 > 解决方案 > 将 varchar 转换为十进制数据类型时出现算术溢出错误

问题描述

我正在尝试将 varchar(14) 转换为 Decimal(14,2)。我的代码类似于

Declare @varchar_variable varchar(14), @decimal_variable decimal(14,2)

Set @varchar_variable = '189'

Select @decimal_variable = Convert(Decimal(14,2),@varchar_variable)

当@varchar_variable 的值很大时(如'10000000000189'),我只会收到算术溢出错误消息

为什么我会收到较大值的此错误消息?10000000000189 之类的值是否超出十进制数据类型的范围?如果是,SQL 中十进制数据类型的范围是多少。

标签: sqlsql-serversqldatatypes

解决方案


如评论中所述,Decimal(14,2)总共包含 14 位数字。

尝试增加您的可变大小;

Select Convert(Decimal(16,2),'10000000000189')

推荐阅读