2017-10-07 82 views
0

我有一个转换 7,80E + 18(存储为varchar)到7800000000000000000小问题(还可以存储为varchar)SQL Server转换

任何想法如何在SQL查询做到这一点。我不能修改源文件

感谢您的帮助:)

回答

0

将其转换为decimal

select cast(7.80E+18 as decimal(20, 0)); 

然后,您可以将它转换为一个字符串,如果你喜欢:

select cast(cast(7.80E+18 as decimal(20, 0)) as varchar(255)); 

这是Rextester

编辑:

你可以先转换为float

cast(cast(cast('7.80E+18' as float) as decimal(20, 0)) as varchar(255)) , 
+0

但是,当我店值7.80E + 18如表一个varchar我在转换过程中出现错误。所以这一个不工作 选择强制转换(cast('7,80E + 18'作为十进制(28,0))作为varchar(128)) – Piotr

+0

@Piotr。 。 。将逗号更改为小数点。 SQL Server可能对此很烦琐。 –