我使用函数进行了一些计算并得到以下值。我想将此值除以1000。
1.83673e+006
我想将值转换为数字。
当我尝试将其转换为数字时,它会抛出
将数据类型nvarchar转换为数字时出错。
是否可以将此值转换为数字?请帮我搞定。
提前致谢
答案 0 :(得分:3)
试试吧
# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again. Default is 30 minutes.
config.timeout_in = 90.minutes
答案 1 :(得分:1)
在SQL Server中,科学记数法(...+e...
)仅用于浮点数据类型,而不用于十进制/数字数据类型。
因此,SQL Server仅在转换为浮点数据类型(例如float
或real
)时才识别此格式,而不是在直接转换为numeric
时识别此格式。
显然,没有什么可以阻止您先将值转换为float
然后转换为numeric
:
SELECT CONVERT(numeric(19,4), CONVERT(float, '1.83673e+006'))
收益1836730.0000
。
答案 2 :(得分:0)
试试这个
Declare @data varchar(100)='1.83673e+006'
SELECT @data=CAST(CAST( @data AS float) AS NUMERIC)/1000
SELECT @data Result
Result
1836.730000