sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan formateres tal som valuta i SQL Server (T-SQL)

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.


  1. SQL Server Database Objects Statistik

  2. Hvad er den bedste måde at gemme mediefiler på en database?

  3. Skalering af din tidsseriedatabase - Sådan skalerer du ganske enkelt TimescaleDB

  4. SQL UPDATE-sætning for at skifte to værdier i to rækker