SQL Server : Convert varchar to decimal (with considering exponential notation as well)

标签 sql sql-server decimal type-conversion

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

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

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

问题是数据也有一些指数表示法的值,例如:1.61022e-016

sql 查询在遇到此类值时会抛出错误。 错误是将数据类型 varchar 转换为数字时出错。

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

最佳答案

您可以尝试以下操作,但可能会失去准确性:

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

关于SQL Server : Convert varchar to decimal (with considering exponential notation as well),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18452569/

相关文章:

sql - 从具有差异的 varchar 列计算年龄

reactjs - 开 Jest 测试: custom currency/decimal formatters showed wrong delimiters

mysql - 如何在 Trigger MySQL 中使用 Concat ("String", '' , MySQL Query)

sql - 无法将值 NULL 插入列 'ExampleID'

mysql - 需要从 MySQL 中获取行

java - MSSQL execute 不会在 java 中抛出错误

sql-server - 删除数据库文件后数据库已经存在

sql - 在完全外连接期间排除空值

mysql - 在sql中设置总和的小数位

python - 如何从范围中获取随机十进制数?