2010-11-24 6 views
5

Gibt es eine Möglichkeit, ein Geld-Feld in SQL Server 2005 zu werfen es zu formatierenSQL Server 2005 Währungsformat mit Kommas und Zeit

Ex) das Feld enthält:

99966.00 

und wir wollen zurückkehren es in diesem Format: $ 99,966.00

+6

Warum möchten Sie das tun? Die Datenschicht sollte nicht die Daten für die Darstellungsschicht formatieren ... – Lucero

Antwort

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

Diese

+3

... bis jemand die regionalen Einstellungen auf Ihrem SQL Server ändert. – Lucero

1

Was CHF arbeitet 9'666,00 oder £ 99,966.00?

„Currency“ eine Zahl in der Datenbank: nicht eine regionale oder locale Einstellung

2

dies versuchen, es funktioniert für SQL Server 2008 und unter (2012 haben bereits eine FORMAT() Funktion, die Sie verwenden können,)

dies wird nur für Datentyp Geld und Smallmoney dieser Hilfe

declare @v money -- or smallmoney 
set @v = 1000.
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) 

HOPE funktioniert!

0

Versuchen

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 

gut?