A partire da SQL Server 2012, è possibile formattare i tipi numerici utilizzando la funzione T-SQLFORMAT(). Questa funzione accetta tre argomenti; il numero, il formato e un argomento “cultura” opzionale.

Il formato viene fornito come stringa di formato. Una stringa di formato definisce come deve essere formattato l’output.

Ecco un esempio:

SELECT FORMAT(1, 'N');

Risultato:

1.00

In questo caso, ho usato N come secondo argomento., Questo è l’identificatore di formato numerico standard per il numero. Questo particolare identificatore di formato (N) consente di formattare l’output con cifre integrali e decimali, separatori di gruppi e un separatore decimale con segno negativo opzionale. Questo argomento è case-insensitive, quindi N o n va bene.,

Decimale

Ecco un altro esempio, questa volta usando N1 per specificare che si desidera solo un decimale:

SELECT FORMAT(1, 'N1');

Risultato:

1.0

Ma è anche possibile aumentare il numero di decimali troppo:

SELECT FORMAT(1, 'N7');

Risultato:

1.0000000

In questi esempi, il 1 e 7 sono noti come precisione dei committenti.

Gli specificatori di precisione sono opzionali., Possono essere un valore da 0 a 99, che specifica la precisione del risultato. Come funziona dipende dall’identificatore di formato utilizzato. Per alcuni specificatori di formato, specificherà il numero totale di cifre nel risultato, per altri specificherà il numero di cifre decimali. In altri casi sarà ignorato del tutto. Vedere l’elenco completo degli specificatori di formato numerico standard per vedere come gli specificatori di precisione influenzano l’output di ciascun specificatore di formato.

Percentuale

I seguenti esempi utilizzano l’argomentoP, che formatta il numero come valore percentuale., Moltiplica il numero per 100, quindi aggiunge un segno di percentuale localizzato.

SELECT FORMAT(1, 'P') AS 'Example 1', FORMAT(.375, 'P') AS 'Example 2', FORMAT(.0375, 'P', 'tr-tr') AS 'Example 3';

Risultato:

Example 1 Example 2 Example 3--------- --------- ---------100.00 % 37.50 % %3,75 

Si noti che “Esempio 3” include un terzo argomento, che specifica la cultura da utilizzare nell’output. In questo caso, uso tr-tr per il turco. Ciò comporta che il segno di percentuale viene anteposto al numero (anziché aggiunto, come gli altri). Si traduce anche in una virgola utilizzata come separatore decimale.

Se non si fornisce l’argomento “cultura”, viene utilizzata la lingua della sessione corrente.,

Come puoi immaginare, potresti ottenere risultati molto diversi a seconda della tua lingua corrente o del valore di qualsiasi argomento “cultura”. Vedere come le impostazioni della lingua possono influenzare i risultati FORMAT() per ulteriori esempi.

Valuta

È possibile utilizzare C per restituire un valore di valuta.

SELECT FORMAT(1, 'C');

Risultato:

$1.00

È anche possibile aggiungere le impostazioni locali come terzo parametro.,

Here are some examples:

SELECT FORMAT(1, 'C', 'fr-FR') AS France, FORMAT(1, 'C', 'th-TH') AS Thailand, FORMAT(1, 'C', 'ja-JP') AS Japan;

Result:

France Thailand Japan------ -------- -----1,00 € ฿1.00 ¥1 

Exponential (Scientific)

You can use E to specify exponential notation.

SELECT FORMAT(1234.56789, 'E');

Result:

1.234568E+003 

Hexadecimal

You can even format a number as hexadecimal., Per fare questo, utilizzare il tag X argomento:

SELECT FORMAT(10, 'X');

Risultato:

A

Ecco un altro esempio, questa volta con un numero maggiore:

SELECT FORMAT(7145, 'X');

Risultato:

1BE9

Formato Personalizzato

È anche possibile creare il proprio formato personalizzato utilizzando un formato numerico personalizzato stringa. Questo è costituito da una serie di specificatori di formato numerico personalizzati che forniscono un modello per il numero.,

Questo è più facile spiegato con un esempio:

SELECT FORMAT(123456789, '##-###-####');

Risultato:

12-345-6789

In questo caso, uso il segnaposto delle cifre (#). Il segnaposto digit mi consente di specificare un formato per il numero, utilizzando il simbolo # come segnaposto per ogni numero.

Virgole

un Altro esempio:

SELECT FORMAT(123456789, '#,#');

Risultato:

123,456,789

Zeri

un Altro formato numerico personalizzato identificatore è zero (0)., È possibile utilizzare questo per il riempimento di un numero di zeri iniziali:

SELECT FORMAT(7, '000') AS 'Example 1', FORMAT(123, '0000') AS 'Example 2', FORMAT(123, '00000') AS 'Example 3';

Risultato:

Example 1 Example 2 Example 3--------- --------- ---------007 0123 00123 

Si può anche usare per rimuovere gli zeri:

SELECT FORMAT(0123, '000') AS 'Example 1', FORMAT(0123, '0000') AS 'Example 2', FORMAT(000123, '00000') AS 'Example 3';

Risultato:

Example 1 Example 2 Example 3--------- --------- ---------123 0123 00123 

Numerico di Specificatori di Formato di Riferimento

I seguenti articoli, che contengono tutte le numerico di specificatori di formato che è possibile utilizzare con il FORMAT() funzione, con T-SQL esempi.,

  • Stringhe di formato numerico standard
  • Stringhe di formato numerico personalizzate

Questi sono gli stessi specificatori di formato supportati da.NET Framework (la funzione FORMAT() si basa su. NET Framework).

Data e ora

La funzioneFORMAT() consente inoltre di formattare data e ora.

Data e ora ha un set separato di specificatori di formato:

  • Stringhe di formato di data e ora standard
  • Stringhe di formato di data e ora personalizzate

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *