A função DATE_FORMAT() do MySQL

A tônica é verdadeira, não há banco de dados onde não seja necessário manipular campos de data e hora, mas isso acarreta num grave problema com relação à portabilidade do seu projeto. Aprenda a contornar esse problema utilizando a função DATE_FORMAT() do MySQL.

[ Hits: 85.114 ]

Por: Fábio Berbert de Paula em 06/11/2002 | Blog: https://fabio.automatizando.dev


Introdução



A tônica é verdadeira, não há banco de dados onde não seja necessário manipular campos de data e hora, mas isso acarreta num grave problema com relação à portabilidade do seu projeto. Geralmente os programadores projetam os scripts que manipulam data de acordo com a string retornada pelo servidor, que pode variar de acordo com a configuração de regionalidade do mesmo. Por exemplo, num servidor configurado para mostrar a data de acordo com os padrões americanos, a data é retornada no formato mm/dd/aaaa,no padrão SQL aaaa-mm-aa, no padrão Europeu dd/mm/aaaa e assim por diante.

Imagine que o seu projeto tenha uns 50 scripts que manipulam data de acordo com o padrão americano e você resolve migrar o seu site para um servidor configurado para retornar data no formato dd/mm/aaaa. Bufafa !!! Você precisará alterar o tratamento de string em 50 scripts. Isso é o que chamo de site mal projetado, pois está muito dependente do sistema operacional,sua portabilidade fica prejudicada.

    Próxima página

Páginas do artigo
   1. Introdução
   2. A função DATE_FORMAT()
Outros artigos deste autor

Corretor Ortográfico no Vim - Guia definitivo

Viva o Linux finalmente de volta!

cpulimit - Limitando o uso da CPU por processo

SQL Dicas & Truques (versão 0.1)

Torne-se um DJ usando Linux

Leitura recomendada

Store Procedures com Transaction no MySQL

Slackware + MariaDB (MySQL): importando e exportando arquivos TXT

Replicação em banco de dados MySQL

Configurando Apache + MySQL + PHP no Slackware

Gerenciando banco de dados com MySQL (parte 2)

  
Comentários
[1] Comentário enviado por harleyhav em 19/03/2004 - 18:46h

Sempre é bom contarmos com pessoas como vc. É assim que iremos mais longe: Adquirindo e passando experiências uns aos outros.
Valeu!!! Continue assim!!!
harleyhav@click21.com.br

[2] Comentário enviado por harleyhav em 19/03/2004 - 18:49h

Se você puder disponibiliza também estas matérias em format PDF, ajudaria bastante. Estou estudando a respeito do MySQL, mas não sei o inglês, por isso me atrazo; tenho muita vontade de aprender. no meu perfil tem uma descrição do que estou pretendendo. Se puder me ajudar, agradeço muito.
Obrigado.

[3] Comentário enviado por germano_silva em 24/02/2005 - 21:46h

Cara muito interessante o que escreveu;

Me deu até uma luz sobre pq estou fazendo um projeto sobre PHP+MySQL e ja ouvi falar desse metodo porém ainda naum o tinha visto na pratica.
Valeu cara tu é 10


[4] Comentário enviado por rafael_nery em 19/12/2005 - 13:12h

Para consulta tudo bem, mas para inserir dados neste formato???

[5] Comentário enviado por morphors em 05/11/2008 - 08:04h

estou com a mesma dúvida q o rafael... tenho uma base de dados q preciso passar para o MySQL, e ela já esta no formato dd/mm/aaaa, inserindo desta forma em um campo "date", não vai. Estou procurando alguma função em php ou mysql q grave no formado do mysql aaaa-mm-dd. São aproximadamente 600 registros e tá complicado.

Mais valeu!!! Boa dica

[6] Comentário enviado por fabio em 05/11/2008 - 09:51h

Você pode resolver isso abrindo o arquivo SQL no VIM e usando uma expressão regular para fazer a substituição/formatação de data. Ex.:

$ vim registros.sql

Dentro do editor, digite o seguinte comando e pressione enter:

:%s/\([0-9][0-9]\)\/\([0-9][0-9]\)\/\([0-9][0-9][0-9][0-9]\)/\3-\2-\1

E pra salvar e sair:

:x

Um abraço.

[7] Comentário enviado por farmamanager em 17/07/2012 - 11:05h

Fiz no meu MySQL e funcionou (quase) perfeitamente. Usei %b e ficou em inglês. Alguém sabe como traduzir?

[8] Comentário enviado por wiltonjr em 27/09/2016 - 18:30h


[4] Comentário enviado por rafael_nery em 19/12/2005 - 13:12h

Para consulta tudo bem, mas para inserir dados neste formato???



Oi Rafael
Para inserir dados você pode usar a instrução no seguinte formato:
INSERT INTO funcionario values (07, "WILTON", '5', "INSTRUTOR", 1530.00, STR_TO_DATE("08/08/1988", "%d/%m/%Y"));


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts