2010-12-15 11 views
2

NVARCHAR値をMsSQLで金額に変換しようとしています。NVARCHARを金額に変換する

私はのようなものを使用することができます知っている:

SELECT CONVERT(money, ValueColumn) FROM SomeTable 

しかし、私は価値4352,50を持っているときに問題がある、と私は変換メソッドを呼び出し、値が435250,00

何になり私は行方不明ですか?私もCONVERT(money、ValueColumn、2)を試しましたが、成功しませんでした。

ありがとうございます!

+0

作業しているロケールを教えてください。小数点区切りの土地として、私の住んでいる私のために。選択すると、すべての数字が間違って表示されます。私にとっては、それは完全にOKです。私は期待しています。小数点の区切り記号(私はプログラマーでビジネスマンではない)として、結果は10進数で表示されます。これらのNLS-Disturbancesを防ぐために、内部表現 –

答えて

2

SELECT CONVERT(money, REPLACE('4352,50', ',', '.'))

+0

ありがとうございました:D – CyberK

1

は、カンマが小数点としてintepretedされていない

DECLARE @ValueColumn NVARCHAR(20) 

SELECT @ValueColumn = '4352,50' 

SELECT CONVERT(money, @ValueColumn) 

VS

DECLARE @ValueColumn NVARCHAR(20) 

SELECT @ValueColumn = '4352.50' 

SELECT CONVERT(money, @ValueColumn) 

を試してみてください。

+0

を取得するためにselectキャスト(CONVERT(money、 '1.1')をvarcharとして使用)を使用しますが、値をハードコーディングせずにクエリでどのように使用できますか?これは160.000行のテーブルなので... – CyberK

+1

最初に列の置換を使用する必要があります。 * REPLACE(@ValueColumn、 '、'、 '。')* –

0

これはハックのビットですが、あなたは、作業していると、あなたのデータの残りの部分は

例えば numbers , numbers ,

Declare @Value nvarchar(50) 

Set @Value = '4352,50,' 

Select Convert(Money, Substring(@Value, 0, Charindex(',',@value)) + '.' + Substring(@Value, Charindex(',',@Value)+1, 2)) 
2

同じ形式であれば - したままの小数点区切り記号は次のとおりです。

SELECT CONVERT(money, REPLACE(ValueColumn, ',', '.')) 
0

SELECT TRY_PARSE('12 .345,67 'AS Money' pt-BR 'を使用)

関連する問題