來自Oracle背景我無法相信SQL Server如何給我這麼瑣碎的關注這麼難。SQL Server CAST/CONVERT到數字文化特定
我只想將varchar
列中的數字解析爲數字列。事情是,數字不是美國風格,而是德國風格的格式。這意味着,小數點和數字組分隔符是互換的。
例子:
1.767,13 equals one thousand and seven hundred ...
我那種通過每一個MSDN文章看了。 CAST
不接受任何附加參數。 CONVERT
可以採取風格這雖然似乎只適用於日期/時間和金錢轉換。此外,我發現TRY_PARSE
需要文化參數,但似乎尚未在2008版本中可用。
我想出了一個kludge解決方案,但那不可能!
cast(replace(replace([TOTALVALUE],'.',''), ',','.') as numeric(20,2))
首先將數字組分隔符刪除,然後將小數點標記從逗號更改爲點。它的工作原理,但它是健壯的等。
感謝您的意見和解答!
http://stackoverflow.com/questions/545575/how-can-i-convert-text-with-a-localized-number-format-into-a-number-in-ms-sql-se –
'TRY_PARSE'是一個新的SQL Server ** 2012 **功能 –