Armazenando datas de uma outra forma

Esse artigo vai explicar uma forma alternativa de se armazenar datas em banco de dados. Não é uma novidade, aliás isso é coisa da galera da "old school", o pessoal que trabalhava com grande porte e coisas assim. Mas essa técnica não morreu, é bem interessante para se ter mais uma carta na manga.

[ Hits: 22.669 ]

Por: Flávio Gonçalves Garcia em 01/07/2004


Conclusão



Podemos ter vantagens e desvantagens usando unix timestamp, é mais uma opção. Data de vez em quando dá um nó na cabeça e esse modo de tratamento me deixa mais à vontade (sem contar que uso menos conversões para operações corriqueiras).

Alguns WHERE's podem dar trabalho, mas nada que vai parar o seu projeto.

Espero ter acrescentado um pouco de conhecimento, um abraço.

Flávio Garcia (Piraz)
Página anterior    

Páginas do artigo
   1. Eu e as datas...
   2. Datas armazenadas como inteiro no banco
   3. Conclusão
Outros artigos deste autor

I Semana de Capacitação e Desenvolvimento em Software Livre

Debian com Apache, PHP4, PHP5 e MySQL

Leitura recomendada

Executando comandos DML em base de dados MySQL através do Eclipse PHP (Bônus: Temas e Fontes no Eclipse)

Sistema PDV com PHP-GTK2 e ACBrMonitor (parte 1)

PHP com suporte ao MS SQL Server 7

Criando uma agenda eletrônica com PHP/MySQL

Stored Procedures usando o MySQL e PHP

  
Comentários
[1] Comentário enviado por fabio em 01/07/2004 - 01:45h

Bom, como a idéia é compartilhar conhecimento, vou mostrar aqui a forma como eu faço, não digo se é melhor ou pior que a mostrada no artigo, mas também funciona muito bem!

Todos os meus arquivos possuem um include para um arquivo global de configuração do sistema, o config.inc. Nele possuo uma variável que armazena o formato do campo DATETIME do banco de dados usado pelo sistema. Por exemplo, pra MySQL defino a variável assim:

$formato_data = 'Y-m-d';

E pra SQL Server seria:
$formato_data = 'm-d-Y';

Se a regionalização mudar, basta mudar uma variável que a lógica das queries estarão automaticamente atualizadas e funcionando.

Quando vou montat um insert, faço da seguinte forma:

$data = date($formato_data);
$insert = "INSERT INTO tabela (data) VALUES ($data)";

Dessa forma não perdemos os recursos que o banco de dados oferece para cálculo de datas e nem precisamos fazer malabarismos nas queries quando mudamos de banco de dados. :P

Bom, taí outra alternativa.

[]'s

[2] Comentário enviado por ygorth em 02/07/2004 - 11:41h

Boa alternativa fabio, enquanto mais cartas nas mangas melhor.

valeu piraz, seja bem-vindo!

[3] Comentário enviado por afonso_franca em 29/09/2005 - 13:59h

Há algum tempo eu descobri o UNIX DATE também trabalhando com o banco do PHPBB e desde então tornou-se o formato padrão de data pra mim (pelo menos até 19/01/2038 hehe).

Muito boa a matéria.

[4] Comentário enviado por marcossilva em 06/10/2005 - 17:35h

Desculpa, eu não entendi algo, como eu faço para armazenar as datas no banco de dados, desta forma ??

T+

[5] Comentário enviado por RedFoot em 29/09/2007 - 23:16h

bacana Fábio

estava precisando de algo desse tipo por aqui nas novas implementações que tô buscando no site.

abraço

[6] Comentário enviado por brunoestevao em 12/03/2008 - 14:56h

$data = date('Y-m-d');
$insert = "insert into tabela (data) values ($data)";

Abraços

Bruno Estêvão
www.sempihost.com.br
Hospedagem de sites com 30 dias grátis

[7] Comentário enviado por removido em 20/04/2009 - 10:11h

muito interessante! obrigado por compartilhar


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts