Problemas ao Gerar Relatórios com Datas

Delphi

31/03/2007

Estou fazendo um sistema em Delphi com banco MySQL que gerencia uma loja de móveis e necessito gerar relatórios. Porém estou tendo problemas para gerar relatórios que exigem fazer filtros por data, ex: exibir todas as compras entre os dia 05/03 e 10/03/2007.
Estou usando os campos data como tipo date e sei que quando o MySQL salva, ele o faz no formato (YYYY/mm/dd). Como vou fazer consultas se os parâmetros que irei passar são em (dd/mm/YYYY)?


Mcsmarmcs

Mcsmarmcs

Curtidas 0

Respostas

Adriano Santos

Adriano Santos

31/03/2007

Use o FormatDatetime na hora de gerar o SQL pra fazer a consulta, por exemplo:

procedure TForm1.Button1Click(Sender: TObject);
begin
  SQL := ´SELECT * FROM TABELA WHERE DATA_EMISSAO BETWEEN DATA_INICIAL AND DATA_FINAL´;
  ParamByName(´DATA_INICIAL´).AsString := FormatDateTime(´YYYY/mm/dd´, DateTimePicker1.Date);
  ParamByName(´DATA_FINAL´).AsString := FormatDateTime(´YYYY/mm/dd´, DateTimePicker2.Date);
end;



GOSTEI 0
Mcsmarmcs

Mcsmarmcs

31/03/2007

Seu sobrenome combina com vc, eu estava desesperado pra resolver isso, o MySQL com essa inversão de data causa muitos transtornos. Valeu!


GOSTEI 0
Adriano Santos

Adriano Santos

31/03/2007

Seu sobrenome combina com vc...

Heheh, imagina. Precisando estamos ai. É um prazer ajudar a comunidade.
Abraço


GOSTEI 0
Adriano Santos

Adriano Santos

31/03/2007

[quote:25a16cff31=´Adriano Santos´]
Seu sobrenome combina com vc...

Heheh, imagina. Precisando estamos ai. É um prazer ajudar a comunidade.
Abraço[/quote:25a16cff31]
Lembrando que provavelmente terá que fazer o mesmo na volta. Por exemplo: Se tiver um campo edit pra atualizar com a data que está no banco talvez vc precise colocar algo como:

Edit1.Text := FormatDatetime(´dd/mm/yyyy´, DataDoBanco);


Agora estou chutando, mas já fica esperto pra ver se é necessário.
Não uso MySQL como desktop então não sei se o que falei é certo. ;)


GOSTEI 0
POSTAR