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: 83.125 ]

Por: Fábio Berbert de Paula em 06/11/2002 | Blog: https://youtube.com/c/cotidianohackeado


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

Como jogar poker no Full Tilt Poker pelo Linux

Instalando um sistema tradutor de línguas no seu Linux

Sorteio de camisetas promovido pela GeekWorld

MP3 no Linux

Usando o "at" para agendamento de tarefas

Leitura recomendada

MySQL Workbench: Criando um Schema do Zero

Store Procedures com Transaction no MySQL

Gerenciando banco de dados com MySQL (Parte 1)

Administrando bancos MySQL com phpMyAdmin

SQL Dicas & Truques (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!!!
[email protected]

[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