将数字(包含特殊字符)转换为金钱

时间:2014-06-27 19:57:44

标签: sql sql-server-2008

鉴于

declare @text varchar(4) ='3677.98*' , @text2 varchar(4) ='1245367.98%'

我想要输出如下:

3,677.98 *和1,245,367.98%

我试过以下:

select convert(varchar,cast(3677.98 as money),1) --output as 3,677.98

如果我尝试select convert(varchar,cast(3677.98* as money),1),则会在关键字'附近显示错误语法为'。

2 个答案:

答案 0 :(得分:1)

如果要将varchar转换为Money格式,则可以使用的唯一货币符号位于this chart, from MSDN。 *和%不符合条件。

如果要存储数量和特殊字符,则需要将它们存储为varchar或使用两列,即money和varchar。

答案 1 :(得分:0)

您可以编写一个标识小数点分隔符的UDF,并从那里开始计算,在输出中添加逗号(或适合语言环境的等效项)。但是,对于查询过去的时间,这不会很好。