Datas no MySQL com SQL ou PHP
Olá a todos. O artigo desta semana, como outros mais, foi uma sugestão de leitores. Como disse a vocês, não hesitem em enviar-me suas sugestões, uma vez que quero escrever artigos sempre para o agrado de todos vocês. Então, além de pedir novamente sugestões, hoje vou além. Gostaria de perguntar-lhe o que acha da minha didática para escrever. Me informe se os textos estão de fácil compreensão (minha preocupação principal), com boa leitura, e por aí vai. Conto com vocês.
No artigo Formatar datas no MySQL com SQL ou PHP, aprendemos como exibir as datas armazenadas em um banco de dados↳Banco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data → MySQL com uma formatação desejada. Além disso, conhecemos a forma correta de armazenar as datas no banco, e vimos que podemos utilizar SQL ou PHP↳PHP44 conteúdosPadronizando seu código com PHP CS FixerDev (Back & Front) · mai 2019Docker de imagem. Para rodar projetos PHP em menos de 30 segundosDev (Back & Front) · jan 2026PHP 7.3: conheça as novidades desta versãoDev (Back & Front) · abr 2019Ver tudo em Dev (Back & Front) → para formatá-las. Hoje, faremos o seguinte: como inserir datas no banco de dados MySQL de forma correta, seja através de instrução SQL ou via PHP.
Primeiramente, utilize a instrução SQL a seguir para criar a tabela que utilizaremos como exemplo.
CREATE TABLE inserir_datas (
id smallint(5) unsigned NOT NULL auto_increment,
data date NOT NULL default '0000-00-00',
texto varchar(100) NOT NULL default '',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Com a tabela criada, e com uma página, em PHP, aberta no Dreamweaver, façamos o seguinte: utilize o behavior Insert Record Form Wizard para criar o formulário e os códigos necessários para a inserção dos dados no banco de dados (não vou explicar os passos para esse processo, assumindo que você tenha tal conhecimento. Caso não o tenha, leia o artigo, Formatar datas no MySQL com SQL ou PHP, e veja o procedimento).
Bom, agora precisamos responder as seguintes perguntas: o usuário irá informar a data a ser inserida? Ou ela (data) será criada automaticamente? Vamos levar em consideração ambas as perguntas e aprender como lidar com tais situações.
Como é de seu conhecimento, as datas são armazenadas no banco com o seguinte formato: aaaa-mm-dd; e os usuários brasileiro não gostarão de ter que digitar uma data em tal formato; afinal eles usam o formato dd/mm/aaaa. No artigo, Formatar datas no MySQL com SQL ou PHP, você aprenderá sobre essa questão de formatos de data. Então, precisaremos inserir a data com a seguinte lógica:
- O usuário informará no formato padrão brasileiro: dd/mm/aaaa;
- Transformaremos a data para o padrão utilizado no MySQL: aaaa-mm-dd;
- Após a transformação, a data será inserida.
Primeiro, vamos analisar os procedimentos que o Dreamweaver utiliza, para sabermos como adaptá-lo. Observe a imagem abaixo:
Exemplo de preparação dos dados a serem inseridos.
Como, você pode perceber, o Dreamweaver utiliza a função GetSQLValueString para analisar o tipo de dado a ser inserido. Criei uma simples função para fazer a conversão da data, ou seja, receberá a data no formato dd/mm-aaaa e retornará aaaa-mm-dd. Observe as modificações:
Exemplo de como utilizar a função para converter a data.
Código da função utilizada.
/**
* Por Leandro Vieira Pinho
* http://leandro.w3invent.com.br
**/
function converter_data(strData) {
// Recebemos a data no formato: dd/mm/aaaa
// Convertemos a data para o formato: aaaa-mm-dd
if ( preg_match("/",strData) == 1 ) {
strDataFinal = "'";
strDataFinal .= implode('-', array_reverse(explode('/',strData)));
strDataFinal .= "'";
}
return strDataFinal;
}Como você percebeu, ao invés de usarmos a função GetSQLValueString, utilizamos a função converter_data que fará com que nosso objetivo seja alcançado.
Agora, faremos todo esse processo de uma outra maneira, mais simples e rápido; utilizando um simples comando SQL. Tal comando, ao qual me refiro é o NOW() que, falando de maneira simples, retorna a data e o horário.
Sendo assim, não precisaremos do campo de formulário onde o usuário digitaria a data. O que significa dizer, que você poderá deleta-lo. Agora, observe a modificação no código:
Exemplo de como inserir a data utilizando o comando NOW().
Simples, não é?
Se desejar, você pode baixar ambos os exemplos e analisá-los. No mais, espero que tenham gostado. Um forte abraço a todos.










Tiago Neves
Cezar Taurion
John Calistro





