Formatando datas SqlServer

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 26/09/2019


Usando o comando CONVERT para formatar datas no MSSqlServer.

Este é um dos principais comando utilizados para a Formatação de dadas em MSSqlServer, principalmente se utiliza as versões mais antigas como 2008r2.

Syntaxe

CONVERT(VARCHAR, [data], [Tipo])
utilize os tipos na tabela abaixo de acordo com o resultado esperado.

Datas
Tipo Formato Retorno Tamanho Resultado
112 YYYYMMDD 8 20191231
12 YYMMDD 6 191231
111 YYYY/MM/DD 10 201/12/31
11 YY/MM/DD 8 19/12/31
101 MM/DD/YYYY 10 12/31/2019
1 MM/DD/YY 8 12/31/19
103 DD/MM/YYYY 10 31/12/2019
3 DD/MM/YY 8 31/12/19
102 YYYY.MM.DD 10 2019.12.31
2 YY.MM.DD 8 19.12.31
104 DD.MM.YYYY 10 31.12.2019
4 DD.MM.YY 8 31.12.19
110 MM-DD-YYYY 10 12-31-2019
10 MM-DD-YY 8 12-31-19
105 DD-MM-YYYY 10 31-12-2019
5 DD-MM-YY 8 31-12-19
100 MMM DD YYYY HH:mm 19 Dez 31 2019 4:05AM
107 MMM DD, YYYY 12 Dez 31, 2019
7 MMM DD, YY 10 Dez 31, 19
6 DD MMM YY 1 31 Dez 19
Data hora
0 MMM DD YYYY HH:mm 19 Dez 31 19 12:38AM
121 YYYY-MM-DD hh:mm:ss.ms 23 2019-12-31 23:59:59.999
21 YYYY-MM-DD hh:mm:ss.ms 23 2019-12-31 23:59:59.999
120 YYYY-MM-DD hh:mm:ss 19 2019-12-31 23:59:59
20 YYYY-MM-DD hh:mm:ss 19 2019-12-31 23:59:59
22 MM/DD/YY HH:mm:ss 21 12/31/19 10:59:59 AM
25 YYYY-MM-DD hh:mm:ss.ms 23 2019-12-31 23:59:59.999
100 MMM DD YYYY HH:mm:ss.ms 26 Dez 31 2019 10:05AM
109 MMM DD YYYY HH:mm:ss.ms 26 Dez 31 2019 4:05:06.007AM
9 MMM DD YYYY HH:mm:ss.ms 26 Dez 31 2019 4:05:06.007AM
13 DD MMM YYYY hh:mm:ss.ms 24 31 Dez 2019 04:05:06.007
113 DD MMM YYYY hh:mm:ss.ms 24 31 Dez 2019 04:05:06.007
106 DD MMM YYYY 1 31 Dez 2019
126 YYYY-MM-DDThh:mm:ss.ms 22 2019-12-31T23:59:59.999
127 YYYY-MM-DDThh:mm:ss.ms 22 2019-12-31T23:59:59.999
Hora
14 hh:mm:ss:ms 12 04:05:06:007
114 hh:mm:ss:ms 12 04:05:06:007
8 hh:mm:ss 12 04:05:06
108 hh:mm:ss 12 04:05:06
24 hh:mm:ss 12 04:05:06


Exemplo

Segue abaixo o exemplo do comando mais utilizado quando precisamos formatar uma data em SqlServer em um Script ou procedure.

SELECT CONVERT(VARCHAR, GETDATE() ,103)
> 31/12/2019      

SELECT CONVERT(VARCHAR, GETDATE() ,112)
> 20191231


Novas Versões

Nas versões mais novas do SqlServer podemos usar o comando FORMAT.

Syntaxe

FORMAT ([data],formato,[culture])
Opções para formatação

Formato descricao
d Dia de 1-31
dd Dia de 01-31
ddd Nome dia semana abreviado 3 dígitos
dddd Nome dia da semana completo
MM Mês de 01-12
MMM Nome do mês abreviado com 3 dígitos
MMMM Nome do mês completo
yy Ano com 2 digitos
yyyy Ano com 4 digitos
hh Hora de 01-12
HH Hora de 00-24
mm Minutos de 00-59
tt Mostra AM-PM


Exemplo

Segue exemplo de utilização do comando.

SELECT FORMAT (cast('2019-09-25 03:10:45' as datetime), 'dd/MM/yyyy HH:mm tt', 'en-us') as date
> 25/09/2019 03:10 AM

-- Utilizando Culture português Brasil
SELECT FORMAT (cast('2019-9-25 23:10:45' as datetime), 'dddd, dd "de" MMMM "de" yyyy', 'pt-br') as date
> quarta-feira, 25 de setembro de 2019


Links Relacionados



Comentários