FORMAT é uma das novas Funções de Corda integradas introduzidas como parte do Sql Server 2012. Retorna o valor formatado no formato especificado usando o valor do parâmetro de cultura opcional. Não é uma função nativa do Sql Server, mas sim uma função dependente de .NET CLR.
SYNTAX: FORMATO ( valor, formato )
Parameter | Descrição |
valor: | Valor a ser formatado |
format: | Este parâmetro especifica o formato em que o vlaue será formatado. |
culture: | Este parâmetro é opcional, especifica a cultura na qual o valor será formatado. Se não for especificado, é utilizada a língua da sessão actual. |
RETURNS: O tipo de valor de retorno é nvarchar.
Exemplo 1: DATA FORMATO com Cultura
DECLARE @date DATETIME = GETDATE() SELECT @date AS 'GETDATE()', FORMAT( @date, 'd', 'en-US') AS 'DATE IN US Culture', FORMAT( @date, 'd', 'en-IN') AS 'DATE IN INDIAN Culture', FORMAT( @date, 'd', 'de-DE') AS 'DATE IN GERMAN Culture'
Resultado:
Exemplo 2: FORMATO MOEDA com Cultura
DECLARE @Price INT = 40SELECT FORMAT(@Price,'c','en-US') AS 'CURRENCY IN US Culture', FORMAT(@Price,'c','de-DE') AS 'CURRENCY IN GERMAN Culture'
Resultado:
Exemplo 3: MOEDA FORMATA
DECLARE @Price DECIMAL(5,3) = 40.356SELECT FORMAT( @Price, 'C') AS 'Default', FORMAT( @Price, 'C0') AS 'With 0 Decimal', FORMAT( @Price, 'C1') AS 'With 1 Decimal', FORMAT( @Price, 'C2') AS 'With 2 Decimal', FORMAT( @Price, 'C3') AS 'With 3 Decimal'
Resultado:
p>Exemplo 4: PERCENTAGEM FORMATÁRIA
DECLARE @Percentage float = 0.35674SELECT FORMAT( @Percentage, 'P') AS '% Default', FORMAT( @Percentage, 'P0') AS '% With 0 Decimal', FORMAT( @Percentage, 'P1') AS '% with 1 Decimal', FORMAT( @Percentage, 'P2') AS '% with 2 Decimal', FORMAT( @Percentage, 'P3') AS '% with 3 Decimal'
Resultado:
Exemplo 5: FORMAT NÚMERO FORMATO
DECLARE @Number AS DECIMAL(10,2) = 454545.389SELECT FORMAT( @Number, 'N','en-US') AS 'Number Format in US', FORMAT( @Number, 'N','en-IN') AS 'Number Format in INDIA'SELECT FORMAT( @Number, '#.0') AS 'With 1 Decimal', FORMAT( @Number, '#.00') AS 'With 2 Decimal', FORMAT( @Number, '#,##.00') AS 'With Comma and 2 Decimal', FORMAT( @Number, '##.00') AS 'Without Comma and 2 Decimal'
Resultado:
Exemplo 6: FORMATO DE DATA ADUANEIRA
DECLARE @date DATETIME = GETDATE() SELECT @date AS 'GETDATE()', FORMAT ( @date, 'dd/MM/yyyy') AS 'dd/MM/yyyy', FORMAT ( @date, 'MM/dd/yyyy') AS 'MM/dd/yyyy', FORMAT ( @date, 'yyyy/MM/dd') AS 'yyyy/MM/dd' SELECT FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','en-US') AS 'US', FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','hi-IN') AS 'Hindi', FORMAT( @date,'dddd, MMMM dd, yyyy hh:mm:ss tt','kn-IN') AS 'Kannada'
Resultado:
DECLARE @date DATETIME = GETDATE()SELECT FORMAT ( @date, 'dd', 'en-US' ) AS 'US',FORMAT ( @date, 'ddd', 'en-US' ) AS 'US',FORMAT ( @date, 'dddd', 'en-US' ) AS 'US',FORMAT ( @date, 'dddd', 'kn-IN' ) AS 'Kannada',FORMAT ( @date, 'dddd', 'hi-IN' ) AS 'Hindi'SELECT FORMAT ( @date, 'M', 'en-US' ) AS 'US',FORMAT ( @date, 'MM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMMM', 'en-US' ) AS 'US',FORMAT ( @date, 'MMMM', 'kn-IN' ) AS 'Kannada',FORMAT ( @date, 'MMMM', 'hi-IN' ) AS 'Hindi'SELECT FORMAT ( @date, 'y', 'en-US' ) AS 'US', FORMAT ( @date, 'y', 'kn-IN' ) AS 'Kannada', FORMAT ( @date, 'y', 'hi-IN' ) AS 'Hindi', FORMAT ( @date, 'yy', 'en-US' ) AS 'US', FORMAT ( @date, 'yyy', 'en-US' ) AS 'US'
Resultado:
p>
Exemplo 7: Cultura Inválida
DECLARE @date DATETIME = GETDATE()SELECT FORMAT(@date,'d','Test') AS 'Invalid Culture'
Resultado:
Msg 9818, Nível 16, Estado 1, Linha 2
O parâmetro de cultura ‘Test’ fornecido na chamada de função não é suportado.
p> Pode gostar de ler as novas funções incorporadas abaixo introduzidas no Sql Server 2012:
Nova função incorporada introduzida no Sql Server | |
FUNÇÕES DE CONVERSÃO | |
PARSE | TRY_PARSE |
TRY_CONVERT | |
STRING FUNCTIONS | |
CONCAT | FORMAT |
FUNÇÕES LÓGICAS | |
CHOOSE | IIF |
DATE AND TIME FUNCTIONS | |
EOMONTH | |
DATEFROMPARTS | DATETIMEFROMPARTS |
SMALLDATETIMEFROMPARTS | DATETIME2FROMPARTS | TIMEFROMPARTS | DATETIMEOFFSETFROMPARTS |