如何在SQL Server中将货币值的varchar列复制为十进制?

时间:2013-06-13 18:47:59

标签: sql-server syntax decimal currency varchar

我有一个包含大约20K行数据的表。一个varchar列包含格式为$ xxx,xxx,xxx.00的货币信息。我想创建一个十进制类型的附加列,并将varchar数据复制到其中,显然在剥离$和时。

我玩过转换和转换,混合了修剪和替换功能,但还没有成功将它变成新列。

因为我们对数据进行了很多未来的计算,所以我们希望将其转换一次,而不是为每次计算转换它。

任何建议都将不胜感激!

提前谢谢!

- 肯特

2 个答案:

答案 0 :(得分:1)

尝试替换$和','然后转换。你应该是好的

CONVERT(NUMERIC(28,4),REPLACE(REPLACE(stringColumn,'$',''),',',''))

SQL小提琴here

答案 1 :(得分:0)

 Select Cast(Replace(Replace(ColName, '$', ''), ',', '') as Money)