Formatando datas MySql

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 29/08/2021


Formatar datas e horas no MySql.

Para formatar datas utilizaremos o DATE_FORMAT() nos atributos DATETIME e DATE, já para formatar horas utilizaremos TIME_FORMAT() nos atributos TIME e TIMESTAMP.

Syntaxe

+---------------------------------------------------------------------------
| SELECT DATE_FORMAT('2021-08-29','%d/%m/%Y')      
+---------------------------------------------------------------------------
| 29/08/2021                                                
+---------------------------------------------------------------------------
1 row in set (0.00 sec)


Utilize os tipos na tabela abaixo de acordo com o resultado esperado.

Datas
Tipo Resultado
%a Dia da semana abreviado (Sun, Mon, Tue, Wed, Thu, Fri, Sat).
%b Nome do mês abreviado (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec).
%c Número do mês.
%D Dia do mês, com o sufixo indicador de numeral ordinal, em inglês (0th, 1st, 2nd, 3rd etc.).
%d Dia do mês, em numerais cardinais (00 a 31).
%e Dia do mês, numérico, sem a necessidade de acrescentar um zero para formar 2 dígitos (0, 1, 2 … 31).
%f Microssegundos (000000 … 999999).
%H Hora no formato 24h (00 … 23).
%h Hora (01 … 12).
%i Minutos em formato numérico (00 … 59).
%j Dia do ano (001 … 366).
%k Hora do dia (0 … 23) sem a necessidade de acrescentar um zero para formar 2 dígitos.
%l Hora do dia (1 … 12) sem a necessidade de acrescentar um zero para formar 2 dígitos.
%M Nome do mês (January, February, March, April, May, June, July, August, September, October, November, December).
%m Mês em formato numérico (00 … 12)
%p AM ou PM
%r Hora do dia em formato 12h (hh:mm:ss) seguido de AM ou PM, para indicar se é antes ou depois de meio dia)
%S Segundos (00 … 59)
%s Segundos (00 … 59)
%T Hora do dia, em formato 24h (hh:mm:ss)
%U Semana do ano (00 … 53), em que Sunday (Domingo) é o primeiro dia da semana; WEEK() mode 0.
%u Semana do ano (00 … 53), em que Monday (Segunda-feira) é o primeiro dia da semana; WEEK() mode 1.
%V Semana do ano (01 … 53), onde Sunday é o primeiro dia da semana; WEEK() mode 2; usado com %X.
%v Semana do ano (01 … 53), onde Monday é o primeiro dia da semana; WEEK() mode 3; usado com %x.
%W Nome do dia da semana (Sunday … Saturday)
%w Número do dia da semana (0=Domingo, 1=Segunda-feira etc.)
%X Ano para a semana em que Domingo é o primeiro dia. Valor numérico, quatro dígitos; usado com %V.
%x Ano para a semana em que a Segunda é o primeiro dia. Valor numérico, quatro dígitos; usado com %v.
%Y Ano em formato numérico, com 4 dígitos.
%y Ano em formato numérico, com 2 dígitos.
%% Um caractere “%” literal.


Podemos utilizar estes caracteres para formatar horas em um atributo DATETIME.

Syntaxe

+------------------------------------------------------------------------------------------------
| SELECT DATE_FORMAT('2021-08-29 15:04:07','%Y%m%d %H:%i:%s')      
+------------------------------------------------------------------------------------------------
| 29/08/2021 15:04:07                                                
+------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)


O funcionamento de TIME_FORMAT()é o mesmo, com o detalhe que deve ser aplicado aos atributos TIME e TIMESTAMP, caso se aplique ao dos formatos para data estes formatos não serão reconhecidos.





Comentários