我需要转换表的数据并进行一些操作。
列数据类型之一是 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/