MySQL – Manter o formato Date e DateTime em formato dd/mm/Year e dd/mm/Year:HH:mm:ss

Esta dica de MySQL tem como objetivo trarar o tema sobre como Manter o formato Date e DateTime em formato dd/mm/Year e dd/mm/Year:HH:mm:ss

Não se pode inserir diretamente dados em qualquer formato que deseje no MySQL para campos datetime e timestamp. O formato que o MySQL utiliza é o padrão ISO: AAAA-MM-DD HH:MM:SS e algumas variantes na mesma ordem.

Entretanto, isto não impede o usuário de converter os formatos no momento da entrada e saída dos dados – lembrando que de qualquer forma, o formato de armazenamento vai se manter igual no DB.

Veja como fazer esta conversão utilizando as próprias funções do MySQL:

Para visualizar datas como dd/mm/aaaa no SELECT:

Com a função DATE_FORMAT( data, formato ) você pode converter uma data em uma string formatada.

Exemplo para sua tabela:

SELECT usr_idusuario, DATE_FORMAT( evn_dtevento, "%d/%m/%Y" ) AS data_evento FROM evn_evento;

Como utilizar uma string dd/mm/aaaa ao se fazer o INSERT:

A função que faz o inverso do exemplo acima é STR_TO_DATE( string, formato ).

Aplicando à sua tabela:

INSERT INTO usr_idusuario SET evn_dtevento = STR_TO_DATE( "31/05/2014", "%m/%d/%Y" ), ...

 

Como utilizar uma string dd/mm/aaaa na cláusula WHERE:

SELECT campos FROM tabela WHERE dia = STR_TO_DATE( "31/05/2014", "%m/%d/%Y" );

 

Ou para um intervalo:

 

SELECT campos FROM tabela
WHERE  dia BETWEEN
           STR_TO_DATE( "01/05/2014", "%m/%d/%Y" ) AND
           STR_TO_DATE( "31/10/2014", "%m/%d/%Y" ) ;

 

Placeholders dos formatos mais comuns para nosso locale:

%d   Dia (00..31)
%e   Dia (0..31)
%m   Mês (00..12)
%y   Ano (dois dígitos)
%Y   Ano (quatro dígitos)
%%   Caractere %
%H   Horas (00..23)
%i   Minutos (00..59)
%s   Segundos (00..59)
%T   Hora completa ( 24 horas, formato hh:mm:ss)

 

Os formatos estão listados na íntegra no manual do MySQL (en)

Outros tutoriais e dicas sobre PHP:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *