SQL Server 2005:将varchar值'1.23E-4'转换为十进制失败

N30*_*N30 9 sql sql-server-2005

declare @a varchar(40)
set @a='1.23e-4'
declare @b decimal(27,12)

if isnumeric(@a) =1
begin

    select @b=cast(@a as decimal(27,12))

end
else
begin
    select @b=-1
end

select @b
Run Code Online (Sandbox Code Playgroud)

当在SQL 2005环境下执行上面的sql代码时,我收到以下错误.

将数据类型varchar转换为数字时出错

有谁知道为什么?

谢谢.

Qua*_*noi 10

SELECT  @b = CONVERT(REAL, @a, 2)
Run Code Online (Sandbox Code Playgroud)

科学记数法仅适用于FLOATREAL.