La funzione SQL Format String è usata per formattare il valore specificato nel formato dato. La sintassi della funzione di formato SQL Server è
Format(Value, Format, Culture)
- Valore: Si prega di specificare un’espressione valida del tipo di dati di supporto.
- Formato: Specificare una stringa di formato .NET Framework valida.
- Cultura: Questo è un argomento opzionale.
SQL Format Date Example
In questo esempio di String Function, abbiamo prima dichiarato una variabile Datetime e le abbiamo assegnato GETDATE(). Qui, useremo la funzione SQL Server Format per restituire la data in diversi formati. Vi suggerisco di fare riferimento all’articolo Standard Date and Time Format Strings per capire i formati di stringa che abbiamo usato in questo esempio.
--Using FORMAT in SQL Server to Format DateDECLARE @Vardate DATETIME = GETDATE() SELECT FORMAT(@Vardate, 'd', 'en-US' ) AS 'Result 1', FORMAT(@Vardate, 'D', 'en-US' ) AS 'Result 2'SELECT FORMAT(@Vardate, 'f', 'en-US' ) AS 'Result 3', FORMAT(@Vardate, 'F', 'en-US' ) AS 'Result 4'SELECT FORMAT(@Vardate, 'g', 'en-US' ) AS 'Result 5', FORMAT(@Vardate, 'G', 'en-US' ) AS 'Result 6'SELECT FORMAT(@Vardate, 'm', 'en-US' ) AS 'Result 7', FORMAT(@Vardate, 'M', 'en-US' ) AS 'Result 8'SELECT FORMAT(@Vardate, 'O', 'en-US' ) AS 'Result 9', FORMAT(@Vardate, 'R', 'en-US' ) AS 'Result 10'SELECT FORMAT(@Vardate, 's', 'en-US' ) AS 'Result 11', FORMAT(@Vardate, 'S', 'en-US' ) AS 'Result 12'SELECT FORMAT(@Vardate, 't', 'en-US' ) AS 'Result 13', FORMAT(@Vardate, 'T', 'en-US' ) AS 'Result 14'SELECT FORMAT(@Vardate, 'u', 'en-US' ) AS 'Result 15', FORMAT(@Vardate, 'U', 'en-US' ) AS 'Result 16'SELECT FORMAT(@Vardate, 'Y', 'en-US' ) AS 'Result 17'
SQL Format Date using Culture
In questo esempio, stiamo per utilizzare la funzione format come terzo argomento culture. Con questo, è possibile visualizzare il nome del mese, o il nome del giorno nella lingua nativa. Qualcosa come: nome del giorno in giapponese, cinese, hindi, russo, coreano, ecc.
--Using FORMAT in SQL Server to Format Date (Culture) DECLARE @Vardate DATETIME = GETDATE() SELECT FORMAT(@Vardate, 'dd', 'en-US' ) AS 'Result 1', FORMAT(@Vardate, 'dddd', 'hi-IN' ) AS 'Result 2'SELECT FORMAT(@Vardate, 'd', 'de-DE' ) AS 'Result 3', FORMAT(@Vardate, 'dddd', 'ru-RU' ) AS 'Result 4'SELECT FORMAT(@Vardate, 'M', 'en-US' ) AS 'Result 5', FORMAT(@Vardate, 'MMMM', 'hi-IN' ) AS 'Result 6'SELECT FORMAT(@Vardate, 'MM', 'de-DE' ) AS 'Result 7', FORMAT(@Vardate, 'MMMM', 'ru-RU' ) AS 'Result 8'SELECT FORMAT(@Vardate, 'yy', 'en-US' ) AS 'Result 9', FORMAT(@Vardate, 'y', 'hi-IN' ) AS 'Result 10'SELECT FORMAT(@Vardate, 'yyyy', 'de-DE' ) AS 'Result 11', FORMAT(@Vardate, 'y', 'ru-RU' ) AS 'Result 12'
Custom Format Date
In questa sezione sql format date, stiamo per definire formati data ora personalizzati. Con questo, è possibile definire i formati personalizzati per visualizzare la data e l’ora.
--Using FORMAT in SQL Server to Format Date in Custom FormatDECLARE @Vardate DATETIME = GETDATE() SELECT FORMAT(@Vardate, 'dd/mm/yyyy') AS 'date in dd/mm/yyyy Format' SELECT FORMAT(@Vardate, 'dd/mm/yy') AS 'date in dd/mm/yy Format' SELECT FORMAT(@Vardate, 'd/m/yy') AS 'date in d/m/yy Format' SELECT FORMAT(@Vardate, 'mm/dd/yyyy') AS 'date in mm/dd/yyyy Format' SELECT FORMAT(@Vardate, 'MMMM dddd yyyy hh:mm:ss:mmmm') AS 'date in MMMM dddd yyyy hh:mm:ss:mmmm Format' SELECT FORMAT(@Vardate, 'MMMM yyyy, dddd hh:mm:ss:mmmm') AS 'date in MMMM yyyy, dddd hh:mm:ss:mmmm Format'
Formatta la valuta usando la cultura
In questo caso, stiamo per formattare i valori della valuta basandoci sulla cultura specificata.
--Using FORMAT in SQL Server to Format Currency CultureDECLARE @Sales INT = 3325 SELECT FORMAT(@Sales, 'c', 'en-US' ) AS 'USA Currency'SELECT FORMAT(@Sales, 'c', 'ru-RU' ) AS 'Russian Currency'SELECT FORMAT(@Sales, 'c', 'hi-IN' ) AS 'Indian Currency'SELECT FORMAT(@Sales, 'c', 'de-DE' ) AS 'Indian Currency'
In questo esempio di funzione Format, usiamo la funzione format per formattare la valuta. Usando questo approccio, potete semplicemente visualizzare i simboli delle valute dei paesi prima del denaro o del valore.
--Using FORMAT in SQL Server to Format Decimal Values in CurrencyDECLARE @Sales DECIMAL(8, 4) = 3325.2569 SELECT FORMAT(@Sales, 'c' ) AS 'Result 1'SELECT FORMAT(@Sales, 'c0' ) AS 'Result 2'SELECT FORMAT(@Sales, 'c1' ) AS 'Result 3'SELECT FORMAT(@Sales, 'c2' ) AS 'Result 4'SELECT FORMAT(@Sales, 'c3' ) AS 'Result 5'SELECT FORMAT(@Sales, 'c4' ) AS 'Result 6'
Sql Server Format Currency Decimals
In questo esempio formatteremo i valori decimali in Currency usando questa funzione format.
--Using FORMAT in SQL Server to Format Decimal Values in CurrencyDECLARE @Sales DECIMAL(8, 4) = 3325.2569 SELECT FORMAT(@Sales, 'c', 'en-US' ) AS 'Result 1'SELECT FORMAT(@Sales, 'c0', 'hi-IN' ) AS 'Result 2'SELECT FORMAT(@Sales, 'c1', 'ru-RU') AS 'Result 3'SELECT FORMAT(@Sales, 'c2', 'fr-FR' ) AS 'Result 4'SELECT FORMAT(@Sales, 'c3', 'de-DE') AS 'Result 5'SELECT FORMAT(@Sales, 'c4', 'zh-CN') AS 'Result 6'
Formattare i numeri usando la cultura
In questo esempio useremo la funzione FORMAT per formattare i numeri. La cultura specifica i formati dei numeri. Cioè, alcuni paesi separano i 100, e altri separano i 1000 ecc.
--Using FORMAT in SQL Server to Format NumbersDECLARE @Number DECIMAL(11, 4) = 1453325.2569 SELECT FORMAT(@Number, 'N', 'en-US') AS 'Result 1'SELECT FORMAT(@Number, 'N', 'en-IN' ) AS 'Result 2'SELECT FORMAT(@Number, 'N', 'ru-RU') AS 'Result 3'SELECT FORMAT(@Number, 'N', 'fr-FR' ) AS 'Result 4'SELECT FORMAT(@Number, 'N', 'de-DE') AS 'Result 5'SELECT FORMAT(@Number, 'N', 'zh-CN') AS 'Result 6'
SQL Server Format Numbers
In questo esempio di funzione format stiamo per formattare numeri. Per formattare i numeri, potete usare i simboli #. Oppure, puoi anche usare 0 per specificare il numero di valori decimali.
--Using FORMAT in SQL Server to Format NumbersDECLARE @Number DECIMAL(10,4) = 945354.1295 DECLARE @Num INT = 945332534 SELECT FORMAT(@Number, '#') AS 'Result 1'SELECT FORMAT(@Number, '#,###' ) AS 'Result 2'SELECT FORMAT(@Number, '#.00') AS 'Result 3'SELECT FORMAT(@Number, '#,###.000' ) AS 'Result 4'SELECT FORMAT(@Num, '###-##-####') AS 'Result 5'