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

Come formattare i numeri come valuta in SQL Server (T-SQL)

In SQL Server puoi utilizzare T-SQL FORMAT() funzione per formattare un numero come valuta.

Il FORMAT() La funzione permette di formattare numeri, date, valute, ecc. Accetta tre argomenti; il numero, il formato e un argomento "cultura" facoltativo. Questo articolo tratta specificamente dell'utilizzo dell'argomento format per specificare una valuta.

Esempio 1 – Utilizzo di base

Ecco un esempio di formattazione di un numero come valuta:

SELECT FORMAT(1234, 'C') Result;

Risultato:

+-----------+
| Result    |
|-----------|
| $1,234.00 |
+-----------+

In questo caso, ho usato C come secondo argomento. Questa è la stringa di formato numerico standard per Currency.

Esempio 2:distinzione tra maiuscole e minuscole

Questo argomento non fa distinzione tra maiuscole e minuscole, quindi C o c restituisce lo stesso risultato:

SELECT FORMAT(1234, 'c') Result;

Risultato:

+-----------+
| Result    |
|-----------|
| $1,234.00 |
+-----------+

Esempio 3 – Cifre decimali

Ecco un altro esempio, questa volta usando C0 per specificare che non vogliamo cifre decimali:

SELECT FORMAT(1234, 'C0') Result;

Risultato:

+----------+
| Result   |
|----------|
| $1,234   |
+----------+

Questo è indicato come un "identificatore di precisione", probabilmente perché consente di specificare la precisione con cui viene visualizzato il risultato.

Puoi anche aumentare il numero di cifre decimali:

SELECT FORMAT(1234, 'C4') Result;

Risultato:

+-------------+
| Result      |
|-------------|
| $1,234.0000 |
+-------------+

Esempio 4 – Localizzazione

Gli esempi precedenti hanno tutti comportato un prefisso del simbolo del dollaro al numero. Questo va bene se la valuta desiderata è in dollari, ma cosa succede se devi visualizzarla in una valuta diversa?

È possibile utilizzare un terzo argomento per specificare la locale. Ciò comporterà automaticamente l'uso del simbolo di valuta appropriato per quella locale:

SELECT FORMAT(1234, 'C', 'fr-FR') Result;

Risultato:

+------------+
| Result     |
|------------|
| 1 234,00 € |
+------------+

Ecco alcune altre località:

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';

Risultato:

+------------+-----------+------------+------------+
| France     | China     | Thailand   | Germany    |
|------------+-----------+------------+------------|
| 1 234,00 € | ¥1,234.00 | ฿1,234.00  | 1.234,00 € |
+------------+-----------+------------+------------+

Se la cultura argomento non è specificato, viene utilizzata la lingua della sessione corrente.

Ecco come trovare la lingua della sessione corrente ed ecco come impostarla.

Tieni presente che la lingua corrente sarà solitamente la stessa della lingua predefinita dell'utente, ma ciò potrebbe non essere il caso se l'utente ha modificato la lingua corrente utilizzando SET LANGUAGE . In ogni caso, puoi anche scoprire qual è la lingua predefinita.

Come puoi immaginare, potresti ottenere risultati abbastanza diversi a seconda della tua lingua corrente o del valore di qualsiasi argomento di "cultura". Vedi come le impostazioni della lingua possono influire sui risultati di FORMAT() per ulteriori esempi.