Formatar datas no MySQL com SQL ou PHP

Tutoriais MySQL Tutoriais PHP

Olá a todos. Hoje falaremos sobre um assunto muito simples para uns e ao mesmo tempo um grande vilão para outros. Se trata da formatação das dastas armazenadas em um banco de dados MySQL.


Muitos desenvolvedores, ao armazenar uma data no banco de dados MySQL, define o campo como VARCHAR e, posteriormente, esse desenvolvedor será prejudicado por não poder utilizar-se das funções que o MySQL oferece para se trabalhar com datas. O motivo? É simples, se ele definiu o campo como VARCHAR o MySQL tratará os dados nesse campo como texto e não data.

Então como fazer o MySQL interpretar os dados de um campo como uma data? Basta definir o tipo do campo como DATEDATETIME ou TIMESTAMP. Esses campos armazenarão as datas nos seguintes formatos: YYYY-MM-DDYYYY-MM-DD HH:MM:SSYYYYMMDDHHMMSS respectivamente. Uma vez que os campos estão definidos corretamente, você se benefica de vários recursos que o MySQL oferece para se trabalhar com o tipo do campo em questão.

Você pode estar se perguntando: se defino o campo na tabela corretamente para armazenar uma data, eu terei problemas na hora de exibí-las já que elas são inseridas no formato padrão americano: ano-mês-dia. Aí, eu lhe respondo. Uma vez que as datas estão armazenadas em um tipo de campo correto. Você poderá fazer o que precisar com elas.

Lhe mostrarei duas formas de exibir suas datas que estão guardadas corretamente em um banco de dados de duas maneiras, observe:

Através de instruções SQL
Vou mostrar-lhe como seria escrever essa instrução SQL para o tratamento de datas duas formas: manualmente, ou através das interface do Dreamweaver.

Manualmente você criará sua instrução SQL assim:

SELECT *,date_format(nome_do_campo, ‘%d/%m/%Y’) AS DATA FROM nome_da_tabela

Ou seja, utilizamos o date_format para formatamos a forma como a data será exibida, no exemplo acima ela será exibida no formato padrão brasileiro: dia/mês/ano.

Para mais detalhes e outras funcionalidades, consulte Date and Time Functions no site do MySQL.

Através da interface do Dreamweaver

Quando você tiver criando um Recordset, como demonstrado na imagem abaixo:

Ou seja, através da interface simples do painel Recordset, você deverá clicar na opção Advanced… para que desta forma, você possa digitar sua instrução SQL como nesta outra imagem abaixo:

Para exibí-la, você prodecerá como de costume. Observe:

<?php echo $row_rsNomeRecordset['data']; ?>

Somente.

Agora, veremos como formatas as datas com o PHP e não com uma instrução SQL.

<?php echo date(‘d/m/Y’, strtotime($row_rsNomeRecordset[‘nome_do_campo’])); ?>

Pronto. Simples não é? Mas vou explicar-lhe. Utilizamos a função date para dizermos ao PHP como exibir a data, no exemplo: dia/mês/ano. E utilizamos o strtotime que faz o seguinte: analisa uma string que contém um formato de data em inglês em um formato dentro do timestamp Unix.

  • Diego Andrade

    Ótimo post.

    Estou cursando o MySQL pelo ADV, http://www.cursoadv.com.br.
    É muito bom contar com essas dicas para me aperfeiçoar.

  • Bruna

    Otimo Post, ajudou no meu TCC