Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server 2005货币格式,带逗号';年代和时期_Sql Server_Sql Server 2005_Sql Server 2008 - Fatal编程技术网

Sql server SQL Server 2005货币格式,带逗号';年代和时期

Sql server SQL Server 2005货币格式,带逗号';年代和时期,sql-server,sql-server-2005,sql-server-2008,Sql Server,Sql Server 2005,Sql Server 2008,有没有一种方法可以在SQLServer2005中强制转换货币字段以对其进行格式化 Ex)该字段包含: 99966.00 我们希望以这种格式返回:$99966.00 '$' + convert(varchar,cast(SalesProducts.Price as money),-1) as Price 这很有效9'666,00瑞士法郎或99966.00英镑怎么样 “Currency”是数据库中的一个数字:不是区域或语言环境设置,请尝试此设置,它适用于SQL Server 2008及以下版本(

有没有一种方法可以在SQLServer2005中强制转换货币字段以对其进行格式化

Ex)该字段包含:

99966.00
我们希望以这种格式返回:$99966.00

'$' + convert(varchar,cast(SalesProducts.Price as money),-1) as Price

这很有效

9'666,00瑞士法郎或99966.00英镑怎么样


“Currency”是数据库中的一个数字:不是区域或语言环境设置,请尝试此设置,它适用于SQL Server 2008及以下版本(2012已具有可使用的FORMAT()函数)

这只适用于数据类型Money和SmallMoney

declare @v money -- or smallmoney
set @v = 1000.0123
select convert(varchar(25), @v, 0)
select convert(varchar(25), @v, 1)
select convert(varchar(25), @v, 2)
select convert(varchar(25), @v, 126)

select '$' + convert(varchar(25), @v, 0)
select '$' + convert(varchar(25), @v, 1)
select '$' + convert(varchar(25), @v, 2)
select '$' + convert(varchar(25), @v, 126)
希望这有帮助

试试看

declare @d float = 34.5

select format(@d, '0.0')  -- 34.5
select format(@d, '00')  -- 35
select format(@d, '0000') -- 0035
select format(@d, '0000.00') -- 0034.50

好吗?

你为什么要这么做?在有人更改SQL Server上的区域设置之前,数据层不应该为表示层设置数据格式。