当前位置: 首页 > 面试题库 >

SQL Server:将varchar转换为十进制(还要考虑指数表示法)

闾丘高峰
2023-03-14
问题内容

我需要转换表的数据并进行一些操作。

列数据类型之一是Varchar,但它存储 十进制 数字。我正在努力将转换varchardecimal

我试过了 CAST( @TempPercent1 AS DECIMAL(28, 16))

问题在于数据也具有某些指数形式的值,例如:1.61022e-016

sql查询在遇到该值时抛出错误。错误是Error converting data type varchar to numeric.

在varchar到十进制转换期间,应如何处理指数表示法值?


问题答案:

您可以尝试执行以下操作,但可能会降低准确性:

select cast(cast('1.61022e-016' AS float) as DECIMAL(28, 16))


 类似资料:
  • 问题内容: 我的日期时间导出为“ CAST(0x0000987C00000000 AS DateTime)”,但是当我想将其恢复为日期时间时,它是一个NULL值。我如何才能再次将它保存到日期时间。 问题答案: 看起来像SQL Server 格式。在内部,该值存储为2个整数,前4个字节是自1900年1月1日以来的天数,第二个是自午夜以来的滴答数(每个滴答是1/300秒)。 如果您需要在MySQL中使

  • 问题内容: 我上传了CSV文件,该文件将所有列自动转换为varchar。我需要将值22.30转换为0.223。 但是我得到了错误: 消息8115,级别16,状态8,行146 将数字转换为数据类型数字的算术溢出错误。 问题答案: 我需要将值22.30转换为0.223。 您需要将其设置为100.0,然后就可以了 返回值: 因此,您需要先对表进行处理,然后对列进行处理。 简单的方法是: 添加新列。 将数

  • 我正在尝试将十六进制数据添加到十六进制字符串中,我需要使用它们的IEEE表示将浮点数添加到该字符串中。对于整数,这很简单: 其中value是数字的VARCHAR,params是包含十六进制字符串的VARCHAR。这个技巧适用于整数,但对于十进制,它会截断十进制部分,并将整数部分转换为十六进制整数。如果十进制的大小是固定的(java float或double),如何将值转换为十进制数的IEEE浮点表

  • 我需要转换十六进制- 当我运行这个错误实际上是显示我需要的值但我不能得到它 groovy.lang.的方法:静态java.lang.我nteger.parseInt()适用于参数类型:(java.math.大整数,java.lang.整数)值:[28855032353026779507009821653742961358,...]可能的解决方案:parseInt(java.lang.String,

  • 问题内容: 我这里有一个将十进制转换为十六进制的函数,但它以相反的顺序打印。我该如何解决? 问题答案: 如果要自己编写此代码而不是使用内置函数,则可以在打印当前数字之前简单地进行递归调用:

  • 本文向大家介绍如何将十六进制转换为十进制?,包括了如何将十六进制转换为十进制?的使用技巧和注意事项,需要的朋友参考一下 而十六进制数是具有值是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的基数,只