あるテーブルから、列の型が decimal(18,2) である別のテーブルに、お金のように見える文字列値を挿入する必要があります。次のようなコードを試しCAST(REPLACE(REPLACE(d.Cost,',',''),'$','') AS DECIMAL(18,2)) AS 'Cost'
ましたが、データ型 varchar を数値に変換する際にエラーが発生します。
3 に答える
1
試す:
CAST(CAST(REPLACE(REPLACE(d.Cost,',',''),'$','') AS Float) AS DECIMAL(18,2)) AS 'Cost'
于 2013-09-27T02:16:52.110 に答える
1
フォーマットされた値をデータベースに保存することはお勧めできませんが、この問題は簡単に回避できます。
Decimalにキャストできない理由は、現在はVarcharであるためです。したがって、最初にMoneyにキャストしてから、別のものにキャストできます。
これはSqlサーバーで機能します:
select cast(cast('$400,000.88' as money) as decimal(10,2))
于 2013-09-27T13:55:38.780 に答える