我上传了CSV文件,该文件将所有列自动转换为varchar。我需要将值22.30转换为0.223。
alter table badv2018
alter column [BB Percent] decimal(4, 3)
但是我得到了错误:
消息8115,级别16,状态8,行146
将数字转换为数据类型数字的算术溢出错误。
我需要将值22.30转换为0.223。
您需要将其设置为100.0,然后DECIMAL(4, 3)
就可以了
DECLARE @Value DECIMAL(4, 3) = 22.3 / 100.0;
SELECT @Value
返回值:
0.223
因此,您需要先UPDATE
对表进行处理,然后ALTER
对[BB Percent]
列进行处理。
简单的方法是:
DECIMAL(4, 3)
。--First step
ALTER TABLE badv2018
ADD New DECIMAL(4, 3);
--Second step
UPDATE badv2018
SET New = [BB Percent] / 100.0;
--Third step
ALTER TABLE badv2018
DROP COLUMN [BB Percent];
--The last step
EXEC sp_rename 'badv2018.New', 'BB Percent', 'COLUMN';
享受!
现场演示
更新:
您还可以添加一个计算列并离开该[BB Percent]
列,这样可以确保您可以获得真实数据和计算所得的数据。
ALTER TABLE badv2018
ADD New AS CAST([BB Percent] / 100.0 AS DECIMAL(4, 3));
问题内容: 我的日期时间导出为“ CAST(0x0000987C00000000 AS DateTime)”,但是当我想将其恢复为日期时间时,它是一个NULL值。我如何才能再次将它保存到日期时间。 问题答案: 看起来像SQL Server 格式。在内部,该值存储为2个整数,前4个字节是自1900年1月1日以来的天数,第二个是自午夜以来的滴答数(每个滴答是1/300秒)。 如果您需要在MySQL中使
我需要转换十六进制- 当我运行这个错误实际上是显示我需要的值但我不能得到它 groovy.lang.的方法:静态java.lang.我nteger.parseInt()适用于参数类型:(java.math.大整数,java.lang.整数)值:[28855032353026779507009821653742961358,...]可能的解决方案:parseInt(java.lang.String,
问题内容: 我这里有一个将十进制转换为十六进制的函数,但它以相反的顺序打印。我该如何解决? 问题答案: 如果要自己编写此代码而不是使用内置函数,则可以在打印当前数字之前简单地进行递归调用:
问题内容: 在SQL 2005环境下执行以上sql代码时,出现以下错误。 将数据类型varchar转换为数值时出错 有人知道为什么吗? 谢谢。 问题答案: 科学记数法仅适用于和。
本文向大家介绍如何将十六进制转换为十进制?,包括了如何将十六进制转换为十进制?的使用技巧和注意事项,需要的朋友参考一下 而十六进制数是具有值是16的数字系统中的一个并且它具有唯一的16个码元:0,1,2,3,4,5,6,7,8,9和A,B,C,d,E ,其中A,B,C,D,E和F分别是十进制值10、11、12、13、14和15的单位表示。而十进制系统是最熟悉的号码系统向公众开放。它是10的基数,只
本文向大家介绍如何将十进制转换为十六进制?,包括了如何将十进制转换为十六进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而十六进制是计算机或数字系统中最常见的数字系统颜色表示。它是基数16,只有16个符号:0、1、2、3、4、5、6、7、8、9和A,B,C,D,E,F。这些A,B,C,D ,E,F分