Esempio 2: Formattare datetime
Possiamo formattare una variabile di tipo datetime in formati diversi.
DECLARE @d DATETIME = CAST('2023-02-01 04:05:06' AS DATETIME);
SELECT
FORMAT(@d, format) -- replace format with what is shown in the table below.
|
Formato |
Query |
Esempio di data formattata per 1 febbraio 2023 04:05:06 AM |
|
d |
|
2/1/2023 |
|
D |
|
Wednesday, February 1, 2023 |
|
f |
|
Wednesday, February 1, 2023 4:05 AM |
|
F |
|
Wednesday, February 1, 2023 4:05:06 AM |
|
g |
|
10/8/2022 6:01 AM |
|
G |
|
10/8/2022 6:01:06 AM |
|
O |
|
2022-10-08T06:01:06.117Z |
|
r |
|
Wed, 01 Feb 2023 04:05:06 GMT |
|
R |
|
Wed, 01 Feb 2023 04:05:06 GMT |
|
s |
|
2023-02-01T04:05:06 |
|
u |
|
2023-02-01 04:05:06Z |
|
U |
|
Wednesday, February 1, 2023 4:05:06 AM |
|
t |
|
4:05 AM |
|
T |
|
4:05:06 AM |
|
Y |
|
February 2023 |
|
MM_dd_yyyy |
|
02_01_2023 |
|
MMM-dd-yy |
|
Feb 01 23 |
|
yyyy-dd-MM |
|
2023-01-02 |
|
yyyy-dd-MM hh.mm |
|
2023-01-02 04.05 |
|
yyyy-dd-MM hh.mm.ss |
|
2023-01-02 04.05.06 |
|
yyyy-dd-MM hh.mm.ss tt |
|
2023-01-02 04.05.06 AM |
Esempio 3: Formattare date con impostazioni locali
Possiamo formattare le date in lingue diverse usando il parametro culture.
DECLARE @d DATE = CAST('2023-02-01' AS DATE);
SELECT
FORMAT(@d, format, culture) -- replace format with what is shown in the table below.
|
Culture |
Query |
Esempio di data formattata per 1 febbraio 2023 |
|
Inglese USA (en-US) |
|
2/1/2023 |
|
|
Wednesday, February 1, 2023 12:00 AM | |
|
Inglese Gran Bretagna (en-gb) |
|
01/02/2023 |
|
|
01 February 2023 00:00 | |
|
Tedesco (de-de) |
|
01.02.2023 |
|
|
Mittwoch, 1. Februar 2023 00:00 | |
|
Cinese (zh-cn) |
|
2023/2/1 |
|
|
2023年2月1日 0:00 | |
|
Hindi (hi-in) |
|
01-02-0203 |
|
|
01 फरवरी 2023 00:00 | |
|
Russo (ru-ru) |
|
01-02-2023 |
|
|
1 февраля 2023 г. 0:00 | |
|
Spagna (gl-es) |
|
01/02/2023 |
|
|
mércores 01 febreiro 2023 00:00 |
Esempio 4: Formattare valute
Possiamo anche formattare comodamente i valori numerici come valute.
SELECT
FORMAT(amount, 'c', culture) -- replace format with what is shown in the table below.
|
Culture |
Query |
Esempio di valuta formattata |
|
Inglese USA (en-US) |
SELECT FORMAT(5.5, 'c', 'en-US') |
$5.5 |
|
Inglese Gran Bretagna (en-gb) |
SELECT FORMAT(@d, 'c', 'en-gb') |
£5.5 |
|
Tedesco (de-de) |
SELECT FORMAT(@d, 'c', 'de-de') |
5,50 € |
|
Cinese (zh-cn) |
SELECT FORMAT(@d, 'c', 'zh-cn') |
¥5.50 |
|
Hindi (hi-in) |
SELECT FORMAT(@d, 'c', ‘hi-in') |
₹5.50 |
|
Russo (ru-ru) |
SELECT FORMAT(@d, 'c', ru-ru') |
5,50 ₽ |
|
Spagna (gl-es) |
SELECT FORMAT(@d, 'c', 'gl-es') |
€5,50 |
Requisiti tecnici
FORMAT() funziona in SQL Server (a partire dal 2012) e in Azure SQL Database. FORMAT() funziona anche in PostgreSQL, ma si comporta in modo diverso. Puoi saperne di più in questo corso.
Vedi anche
Approfondisci SQL
Conclusione
FORMAT() vale la pena di essere imparata perché trasforma una delle piccole seccature di SQL in una soluzione in una riga.
Una nota da tenere a mente: questa è sintassi per SQL Server e Azure SQL. PostgreSQL ha la propria funzione FORMAT(), ma si comporta in modo diverso — quindi verifica il tuo dialetto prima di fare affidamento su questi pattern.


L'output dei database raramente è pronto per un report. I prezzi tornano come
1234.5invece di$1,234.50. Le date vengono visualizzate come2023-02-01 04:05:06quando vorresti qualcosa di più leggibile.La funzione
FORMAT()di SQL può tornare utile. Converte numeri e date in testo formattato e offre un supporto discreto a valute diverse o a schemi personalizzati di vario tipo.Questo tutorial spiega la sintassi e quattro casi d'uso comuni.
Che cos'è la funzione FORMAT()?
FORMAT()trasforma numeri o datetime in testo, applicando regole su come devono essere visualizzati.Quando usare FORMAT() in SQL
FORMAT()è utile per visualizzare date, valute e valori numerici in un formato specifico.Sintassi di SQL FORMAT()
Parametro
Che cos'è?
Value
Un parametro obbligatorio che fa riferimento alla colonna da formattare
Format
Un parametro obbligatorio che specifica il pattern di formattazione del valore. Deve contenere una stringa di formato .NET. Mostreremo i vari formati consentiti negli esempi qui sotto
Culture
Un parametro opzionale che specifica la formattazione locale di data/ora.
Esempi di FORMAT()
Esempio 1: Formattare variabili numeriche
phone_number
0
11-222-3333