Problemas ao Gerar Relatórios com Datas
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)?
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
Curtidas 0
Respostas
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
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
31/03/2007
Seu sobrenome combina com vc...
Heheh, imagina. Precisando estamos ai. É um prazer ajudar a comunidade.
Abraço
GOSTEI 0
Adriano Santos
31/03/2007
[quote:25a16cff31=´Adriano Santos´]
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:
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. ;)
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