Quem já trabalhou com datas no MySQL sabe que o formato que elas são armazenadas é, algumas vezes, meio inconveniente de se trabalhar. É possível modificar esse formato utilizando de programação (PHP, por exemplo), mas é muito mais simples já trazer a data no formato certo, diretamente do banco.

O banco de dados retorna uma data no seguinte formato: 2010-03-18 00:55;23 ou talvez nesse: 2010-03-18 (sem as horas). Como podemos fazer para que ele já traga no formato desejado, por exemplo: 18/03/2010?

É bem simples. Na hora de fazer o SELECT, utilizamos a função DATE_FORMAT() do MySQL. Ela pega a data no formato original e manipula da forma que você quizer.

Exemplo 1:

SELECT *,date_format(`data`,'%d/%m/%Y') as `data_formatada` FROM `pessoas`

Nesse caso, ele pegou a data contida no campo data, converteu para formato DD/MM/YYYY e nomeou o campo com a data formatada para data_formatada.

Exemplo 2:

SELECT *,date_format(`data`,'%d-%m às %Hh%i') as `data_formatada` FROM `pessoas`

No segundo exemplo o formato mudou para DD-MM às HHhMM, Exemplo: 25/06 às 14h35.

Cada ítem da data tem um identificador, veja abaixo a lista deles:

ID     Descrição
%a     Nome da Semana Abreviado (Seg a Dom)
%b     Nome do mês Abreviado (Jan a Dez)
%c     Mês de forma numérica (1 a 12)
%D     Dia do mês com o sufixo Inglês (1st, 2nd, 3rd, …)
%d     Dia do Mês de forma numérica (01 a 31)
%e     Dia do Mês de forma numérica (1 a 31)
%f     Micro segundos (000000..999999)
%H     Horas (00 a 23)
%h     Horas (01 a 12)
%I     Horas (01 a 12)
%i     Minutos de forma numérica (00 a 59)
%j     Dia do Ano (001 a 366)
%k     Horas (0 a 23)
%l     Horas (1 a 12)
%M     Nome do mês (Janeiro a Dezembro)
%m     Mês de forma numérica (01 a 12)
%p     AM ou PM
%r     Horas, 12-horas (hh:mm:ss seguidos de AM ou PM)
%S     Segundos (00 a 59)
%s     Segundos (00 a 59)
%T     Horas, 24-horas (hh:mm:ss)
%U     Semana (00 a 53), onde Domingo é o primeiro dia da semana
%u     Semana (00 a 53), onde Segunda é o primeiro dia da semana
%V     Semana (00 a 53), onde Domingo é o primeiro dia da semana; usado com %X
%v     Semana (00 a 53), onde Segunda é o primeiro dia da semana; usado com %x
%W     Nome do dia da semana (Segunda a Domingo)
%w     Dia da semana (0=Domingo a 6=Sábado)
%X     Dia da semana onde Domingo é o primeiro dia da semana, de forma numérica com 4 dígitos, usado com %V
%x     Ano da semana, onde Segunda é o primeiro dia da semana, de forma numérica, com 4 dígitos, usado com %v
%Y     Ano numérico com 4 dígitos
%y     Ano numérico com 2 dígitos
%%     Um simples caracter “%”
%x     x, para qualquer “x” não listado acima