2017-10-07 174 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可能對此很煩瑣。 –