2017-03-01 8 views
2

SQL Serverでnvarcharを10進数に変換する方法は?SQLでnvarcharを10進数に変換する方法

'38,716.1311'のような値を38716.1311に変換する必要があります。

私は、このメソッドを使用してみましたが、正常に変換できません。

DECLARE @TempValue NVARCHAR(100) = '38,716.1311' 

SELECT 
    CONVERT(DECIMAL(18, 2), @TempValue) 

誰が正しいクエリを提案することはできますか?事前に感謝

+3

コンマを削除するにはどうすればいいですか –

答えて

3

は直前の変換にあなたの文字列からカンマを削除します。

Select CONVERT(DECIMAL(18,2),replace('38,716.1311', ',', '')) 
1

その優れた@TempValueMONEYであればそれはカンマが

Declare @TempValue MONEY = '38,716.1311' 
Select CAST(@TempValue AS DECIMAL(18,2)) 
0
Declare @TempValue nvarchar(100) 
    SET @TempValue = Replace('38,716.1311',',','') 
Select cast(@TempValue AS DECIMAL(18,2)) 

--weを分離無視します"38,716.1311"(NVARCHAR)のように値を変換できませんDECIMALにまず "、"を空白 "38716.1311"に置き換えてからDECIMALで変換します

+0

このコードスニペットは歓迎されていますが、何か助けになるかもしれませんが、説明](// meta.stackexchange.com/q/114762)* how * and * why *これが問題を解決します。あなたが今質問している人だけでなく、将来読者のための質問に答えていることを忘れないでください!説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

0

使用MONEYデータ型と小数点データ型に変換します。

DECLARE @Col MONEY = '38,716.1311' 
SELECT CONVERT(DECIMAL(20,4),@Col) 

またはコンマを交換し、小数

DECLARE @Col VARCHAR(100) = '38,716.1311' 
SELECT CONVERT(DECIMAL(20,4),REPLACE(@Col,',','')) 
0

に変換そうのようなREPLACE使用してコンマを削除します。

Declare @TempValue nvarchar = '38,716.1311' 
Select CONVERT(DECIMAL(18,2),REPLACE('38,716.1311', ',', '')) 
関連する問題