Curso
O que é o FORMAT() função?
FORMAT() transforma números ou datas em texto, com regras para sua exibição.
Quando usar FORMAT()
FORMAT() é útil para exibir datas, moeda e valores numéricos em um formato específico.
FORMAT() syntax
FORMAT(value, format[, culture])
|
Parâmetro |
O que é isso? |
|
|
Um parâmetro obrigatório referente à coluna a ser formatada |
|
|
Um parâmetro obrigatório que especifica o padrão de formato do valor. Ele deve conter uma string de formato .NET de valor. Ilustraremos os vários formatos permitidos nos exemplos abaixo |
|
|
Um parâmetro opcional que especifica a formatação de data/hora com reconhecimento de local. |
FORMAT() exemplos
Exemplo 1: Formatação de variáveis numéricas
SELECT
FORMAT(0112223333, ‘##-###-####') -- replace format with what is shown in the table below.
|
|
|
|
0 |
11-222-3333 |
Exemplo 2: Formatação de data e hora
Podemos formatar uma variável de formato datetime em diferentes formatos.
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 |
Consulta |
Exemplo de data formatada para 1 de fevereiro de 2023 04:05:06 AM |
|
d |
|
2/1/2023 |
|
D |
|
Quarta-feira, 1º de fevereiro de 2023 |
|
f |
|
Quarta-feira, 1 de fevereiro de 2023 4:05 AM |
|
F |
|
Quarta-feira, 1 de fevereiro de 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 |
|
Quarta-feira, 1 de fevereiro de 2023 4:05:06 AM |
|
t |
|
4:05 AM |
|
T |
|
4:05:06 AM |
|
Y |
|
Fevereiro de 2023 |
|
MM_dd_yyyy |
|
02_01_2023 |
|
MMM-dd-yy |
|
01/02/23 |
|
yyyy-dd-MM |
|
2023-01-02 |
|
aaaa dd-MM hh.mm |
|
2023-01-02 04.05 |
|
yyyy-dd-MM hh.mm.ss |
|
2023-01-02 04.05.06 |
|
aaaa dd-MM hh.mm.ss tt |
|
2023-01-02 04.05.06 AM |
Exemplo 3: Formatação de data com reconhecimento de cultura
Podemos formatar datas em diferentes idiomas com o parâmetro 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.
|
Cultura |
Consulta |
Exemplo de data formatada para 1º de fevereiro de 2023 |
|
Inglês dos EUA (en-US) |
|
2/1/2023 |
|
|
Quarta-feira, 1º de fevereiro de 2023 12:00 AM |
|
|
Grã-Bretanha Inglês (en-gb) |
|
01/02/2023 |
|
|
01 de fevereiro de 2023 00:00 |
|
|
Alemão (de-de) |
|
01.02.2023 |
|
|
Mittwoch, 1. Fevereiro de 2023 00:00 |
|
|
Chinês (zh-cn) |
|
2023/2/1 |
|
|
2023年2月1日 0:00 |
|
|
Indiano (hi-in) |
|
01-02-0203 |
|
|
01 फरवरीी 2023 00:00 |
|
|
Russo (ru-ru) |
|
01-02-2023 |
|
|
1 февраля 2023 г. 0:00 |
|
|
Espanha (gl-es) |
|
01/02/2023 |
|
|
mércores 01 febreiro 2023 00:00 |
Exemplo 4: Formatação de moeda
Também podemos formatar convenientemente valores numéricos em moedas.
SELECT
FORMAT(amount, 'c', culture) -- replace format with what is shown in the table below.
|
Cultura |
Consulta |
Exemplo de moeda formatada |
|
Inglês dos EUA (en-US) |
|
$5.5 |
|
Grã-Bretanha Inglês (en-gb) |
|
£5.5 |
|
Alemão (de-de) |
|
5,50 € |
|
Chinês (zh-cn) |
|
¥5.50 |
|
Indiano (hi-in) |
|
₹5.50 |
|
Russo (ru-ru) |
|
5,50 ₽ |
|
Espanha (gl-es) |
|
€5,50 |
Requisitos técnicos
FORMAT() funciona no SQL Server (a partir de 2012), Azure SQL Database. FORMAT() também funciona no PostgreSQL, mas se comporta de forma diferente. Você pode saber mais sobre isso neste curso.