1

私は関数を使っていくつかの計算を行い、以下の値を得ました。この値を1000で割ります。科学的表記法の数値を含むvarcharをSQL Serverの数値に変換するにはどうすればよいですか?

1.83673e+006 

数値を数値に変換します。

私はそれが数値にデータ型はnvarcharを変換

エラーをスローし、数値に変換してみてください。

この値を数値に変換することはできますか?これを手伝ってください。事前

+0

どのバージョンを試してみてください? – alroc

+0

SQL Server 2012 – DineshDB

答えて

2

おかげで、SQL Server内の

SELECT CONVERT(numeric(16,0), CAST(1.83673e+006 AS FLOAT)) 
1

それを試して、科学的表記法(...+e...は)のみ浮動小数点データ型のためではなく、小数/数値データ型に使用されます。

したがって、numericに直接変換するときではなく、浮動小数点データ型(floatまたはrealなど)に変換する場合のみSQL Serverがこの形式を認識します。

もちろん、何もnumericに第1およびfloatに値を変換できないようにしない:

SELECT CONVERT(numeric(19,4), CONVERT(float, '1.83673e+006')) 

1836730.0000を生み出します。

0

ただ、SQL Serverのこの

Declare @data varchar(100)='1.83673e+006' 
SELECT @data=CAST(CAST(@data AS float) AS NUMERIC)/1000 
SELECT @data Result 


Result 
1836.730000 
関連する問題