sql - 将 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 中十进制数据类型的范围是多少。
解决方案
如评论中所述,Decimal(14,2)
总共包含 14 位数字。
尝试增加您的可变大小;
Select Convert(Decimal(16,2),'10000000000189')
推荐阅读
- r - R 理解 glmnet 的 {caret} train(tuneLength=)
- html - 如何在单击另一个图像时更改我的图像按钮?
- javascript - 如何在这一系列承诺中插入 if 语句?(Vue JS)
- python - Python - 为每个元素查找左侧第一个非零元素的索引
- .htaccess - 如何将域重定向到目录 .htaccess
- android - 为手机上的标准下载目录创建文件提供程序,以通过 Intent 发送 PDF 文件
- mysql - MySQL:根据匹配值将数据从一个表更新或复制到另一个表
- android - Lint 错误:`httpclient` 定义的类与 Android 现在提供的类冲突
- python - 用python制作计算器
- kubernetes - Kubernetes:我可以将来自同一个 PV 的不同子路径挂载到同一个容器的不同位置吗?