I SQL Server kan du bruge T-SQL FORMAT()
funktion til at formatere et tal som en valuta.
FORMAT()
funktionen giver dig mulighed for at formatere tal, datoer, valutaer osv. Den accepterer tre argumenter; tallet, formatet og et valgfrit "kultur"-argument. Denne artikel omhandler specifikt brugen af formatargumentet til at angive en valuta.
Eksempel 1 – Grundlæggende brug
Her er et eksempel på formatering af et tal som en valuta:
SELECT FORMAT(1234, 'C') Result;
Resultat:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
I dette tilfælde brugte jeg C
som det andet argument. Dette er standard numerisk formatstreng for valuta.
Eksempel 2 – Versalfølsomhed
Dette argument skelner mellem store og små bogstaver, så enten C
eller c
returnerer det samme resultat:
SELECT FORMAT(1234, 'c') Result;
Resultat:
+-----------+ | Result | |-----------| | $1,234.00 | +-----------+
Eksempel 3 – Decimaler
Her er et andet eksempel, denne gang ved hjælp af C0
for at angive, at vi ikke ønsker nogen decimaler:
SELECT FORMAT(1234, 'C0') Result;
Resultat:
+----------+ | Result | |----------| | $1,234 | +----------+
Dette omtales som en "præcisionsspecifikator", sandsynligvis fordi det giver dig mulighed for at angive den præcision, som resultatet vises med.
Du kan også øge antallet af decimaler:
SELECT FORMAT(1234, 'C4') Result;
Resultat:
+-------------+ | Result | |-------------| | $1,234.0000 | +-------------+
Eksempel 4 – Landestandard
De foregående eksempler resulterede alle i, at et dollartegn blev sat foran tallet. Dette er fint, hvis den ønskede valuta er i dollars, men hvad hvis du har brug for at vise den i en anden valuta?
Du kan bruge et tredje argument til at angive lokaliteten. Dette vil automatisk resultere i, at det relevante valutasymbol bliver brugt for den pågældende lokalitet:
SELECT FORMAT(1234, 'C', 'fr-FR') Result;
Resultat:
+------------+ | Result | |------------| | 1 234,00 € | +------------+
Her er nogle flere lokaliteter:
SELECT FORMAT(1234, 'C', 'fr-FR') 'France', FORMAT(1234, 'C', 'zh-cn') 'China', FORMAT(1234, 'C', 'th-TH') 'Thailand', FORMAT(1234, 'C', 'de-DE') 'Germany';
Resultat:
+------------+-----------+------------+------------+ | France | China | Thailand | Germany | |------------+-----------+------------+------------| | 1 234,00 € | ¥1,234.00 | ฿1,234.00 | 1.234,00 € | +------------+-----------+------------+------------+
Hvis kulturen argumentet er ikke angivet, sproget for den aktuelle session bruges.
Sådan finder du sproget for den aktuelle session, og her er hvordan du indstiller det.
Bemærk, at det aktuelle sprog normalt vil være det samme som brugerens standardsprog, men dette er muligvis ikke tilfældet, hvis brugeren har ændret det aktuelle sprog ved hjælp af SET LANGUAGE
. Under alle omstændigheder kan du også finde ud af, hvad standardsproget er.
Som du måske forestiller dig, kan du få helt forskellige resultater afhængigt af dit nuværende sprog eller værdien af ethvert "kultur"-argument. Se Hvordan sprogindstillinger kan påvirke dine FORMAT()-resultater for flere eksempler.