MySql
Formatando datas no MySql com DATE_FORMAT()
No artigo de hoje, mostrarei a vocês mais uma artimanha de se trabalhar com datas em banco de dados, na qual utilizamos uma função do próprio MySql para convertemos a data da maneira que quisermos para exibi-las ao usuário chamada DATE_FORMAT().
DATE_FORMAT()
Trabalhar com datas é sempre um trabalho trivial a se realizar, pois quase sempre elas nos trazem problemas na hora de manipula-las ou exibi-las. Existem muitas formas de se fazer esse trabalho de exibi-la corretamente, umas delas e talvez mais conhecida, é pelo próprio php na qual usamos a função explode transformando a data em um array e depois remontando a data pelos índices.
Mas hoje, em termos de manipular a data somente para exibi-la, vamos aprender um método muito mais fácil em minha opinião, onde na própria consulta SQL definimos a forma como queremos exibir a data já no SELECT usando o DATE_FORMAT ().
Quando fazemos uma consulta ao banco de dados, ele retorna uma data no seguinte formato, 2015-03-20 00:20:23 ou talvez nesse, 2015-03-20 (sem as horas).
Ai você se pergunta, como podemos fazer para que ele já traga no formato desejado, por exemplo, 20/03/2015?
É 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ê quiser.
Exemplo 1:
SELECT * DATE_FORMAT (`data`,'%d/%m/%Y') AS `data_formatada` FROM `pedidos`
Nesse caso, ele pegou a data contida no campo data, converteu para formato DD/MM/YYYY e renomeou o campo que formatamos a data para data_formatada.
Exemplo 2:
SELECT * DATE_FORMAT (`data`,'%d-%m às %Hh%i') AS `data_formatada` FROM `pedidos`
No segundo exemplo, o formato mudou para DD-MM às HHhMM, Exemplo: 20/03 às 09h35.
Cada item 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
Dúvidas criticas ou sugestões comentem abaixo que teremos o prazer em tentar ajuda-los. =)
Gigasystems Login:
Informe seu e-mail abaixo para continuar!
XVeja Também:
Artigos Relacionados a categoria: MySql
Backup e Restore do banco de dados Mysql
03 July de 2015
SQL_CACHE otimizando suas consultas SQL do MySql
20 March de 2015
UPDATE a partir de um SELECT, JOIN
28 January de 2015
SQL Stored Procedures e Fucntions com Mysql
30 November de 2014
Olá, deixe seu comentário para Formatando datas no MySql com DATE_FORMAT()
Ricardo Pina
Evander McOliver
Wyll Bern
Lúcio Messias
Grato
Mario Augusto