FORMATO DE DATA MYQL

X16X 25/09/2009 13:40:06
#323639
Nos meus formularios trabalho com o formato de data dd/mm/yyyy 25/09/2009 , e no mysql o formato da data é YYYY-MM-DD 2009-09-09

Dentro do mysql coloquei esse campo como varchar , porem agora surgiu a necessidade de fazer uma pesquisa entre datas , e ja que o mysql so aceita consultar datas... se o tipo do campo do mysql for realmente um campo data.

Entao devo na hora de gravar a data no mysql usar uma funcao para converter essa 25/09/2009 para o formato do mysql ?

Na hora da consulta ao banco de dados atravez de um select devo usar date_format() para trazer o formato da data de acordo com que trabalho ?

Gostaria de uma sugestao para trabalhar melhor com esses dados.

Obrigado.
TECLA 25/09/2009 14:07:42
#323642
Sugiro que mude o formato do campo para DATE e que use a função FORMAT(valor, formato) do Visual Basic para apresentar nos controles dos formulários o formato DD/MM/YYYY.
MARCELO.TREZE 25/09/2009 14:24:28
#323646
Colega a solução é simples

deixe o campo domo date/time no MySQL

para Salvar, Consultar use o Format(Data,[Ô]YYYY-MM-DD[Ô])

agora para exibir use Format(Data,[Ô]dd/mm/yyyy[Ô])

é simples esta conversão é feita na hora de inserir, alterar ou consultar entendeu

X16X 25/09/2009 14:30:36
#323650
Tecla,

Usar a funcao format() para converter a data de entrada do usuario para o formato do banco de dados.... e quando for fazer uma consulta no banco de dados usar a mesma funcao format() para visualizar a data ?

No meu caso trabalho com Stored Procedure do mysql , entao gostaria de mandar esse resultado da consulta com a data no formato que uso nos meus formularios.

Dessa forma funciona, porem o resultado é no format do mysql

select * from tt_contareceber where cr_vencimento BETWEEN [ô]2009-01-01[ô] and [ô]2009-12-31[ô];


Fazendo dessa forma obtenho o resultado que quero... mais terei que informar todos os campos do select manualmente ?

select date_format(cr_vencimento,[ô]%d/%m/%Y[ô]) from tt_contareceber where cr_vencimento BETWEEN [ô]2009-01-01[ô] and [ô]2009-12-31[ô];
X16X 25/09/2009 14:48:18
#323651
Fiz dessa forma em minha procedure e funcionou.


select *,date_format(cr_vencimento,[ô]%d/%m/%Y[ô]) as resulvencimento from tt_contareceber where cr_vencimento BETWEEN [ô]2009-01-01[ô] and [ô]2009-12-31[ô];
Tópico encerrado , respostas não são mais permitidas