關於數據庫中的科學計數法的處理


SQL Server 疑難雜症--轉換科學計數法的數值字符串為decimal類型

轉自:http://www.cnblogs.com/mybluesky99/archive/2011/05/18/2050160.html

今天在操作數據庫時,需要將字符串轉換成Decimal類型。代碼如下:

select cast('0.12' as decimal(18,2));

select convert(decimal(18,2), '0.12');

當需要將科學計數法的數字字符串轉換成Decimal時,這2種寫法都報錯:

Msg 8114, Level 16, State 5, Line 1

Error converting data type varchar to numeric.

select cast('0.12e+006' as decimal(18,2));

select convert(decimal(18,2), '0.12e+006');

網上查了很多資料都沒有找到答案。最后無意中發現float類型轉換成字符串時就會產生科學計數法的數值字符串:

select cast(cast(1234400000 as float) as varchar)

1.2344e+009

反向思維,那科學計數法的數值字符串應該可以轉換成float類型,再轉換floatdecimal

select cast(cast('1.2344e+009' as float) as decimal(18,2))

總結: 如果是科學計數法的數值字符串,可以先轉換成float然后轉換成其它數值類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM