Fórum Consulta entre datas. #363210
25/08/2008
0
o problema é o seguinte:
tenho que fazer um relatório de caixa, quero colocar as datas e o sistema me retornar as datas detro do periodo que eu informei a ele.
Com SQL no FireBird eu consegui fazer mais quando eu vou ao delphi eu não conssigo fazer.
Meu código no delphi ta assim!
Q_Date.Close;
Q_Date.SQL.Clear;
Q_Date.SQL.Add(´Select * from parcelas where dat_venci between´ +Edit1.Text+ ´and´ +Edit2.Text´);
Q_Date.Open;
Qual é o erro?
Alguem pode me dar uma ajuda de como solucionar ess problema?
agradeço.
Jarabeucp
Curtir tópico
+ 0Posts
25/08/2008
Joaoshi
Q_Date.Close; Q_Date.SQL.Clear; Q_Date.SQL.Add(´Select * from parcelas where dat_venci between ´ + QuotedStr(Edit1.Text) + ´ and ´ + QuotedStr(Edit2.Text)); Q_Date.Open;
Lembrando que para passar datas no Firebird no padrão DD/MM/YYYY os seus edits (edit1 e edit2), devem estar DD.MM.YYYY (separados com ponto).
Espero ter ajudado.
Gostei + 0
25/08/2008
Jarabeucp
Q_Date.Close; Q_Date.SQL.Clear; Q_Date.SQL.Add(´Select * from parcelas where dat_venci between ´ + QuotedStr(Edit1.Text) + ´ and ´ + QuotedStr(Edit2.Text)); Q_Date.Open;
Parcero obrigado pelo hlep, deu certo
valeu.
quarquer duvida e eu puder ajudar estamos ai.
Gostei + 0
26/08/2008
Jarabeucp
só que hoje fazendo alguns teste observei q só funciona quando eu pesso p filtrar datas diferentes, quando coloco nos Edits a mesma data ou seja p ele filtrar tudo q eu recebi no dia da um erro.
como soluciono o problema?
no erro fala ´ouvi um erro de conversão de string´.
D já agradeço.
Gostei + 0
26/08/2008
Joaoshi
Gostei + 0
26/08/2008
Jarabeucp
O tipo de campo que eu uso é DATE.
Gostei + 0
26/08/2008
Joaoshi
Gostei + 0
26/08/2008
Jarabeucp
Q_Date.Close; Q_Date.SQL.Clear; Q_Date.SQL.Add(´Select * from parcelas where dat_venci between´ +QuotedStr(Inicio.Text)+ ´and´ +QuotedStr(fim.Text)); Q_Date.Open;
Ia está o código, ele só da erro se as datas enicio e fim forem iguais se forem datas diferentes ele não da erro.
Gostei + 0
26/08/2008
Joaoshi
Lembrando depois do Between tem que ter um espaço.
Antes e depois do AND tem que ter um espaço.
Para passar datas nos comandos SQL deve ser no formato MM/DD/YYYY (mes dia ano), no Firebird para datas no formato DD/MM/YYYY deve ser separadas por . DD.MM.YYYY.
Espero ter ajudado.
Gostei + 0
26/08/2008
Rodolfo.pirolo
Aproveitando o seu código ficaria mais ou menos assim:
Q_Date.Close;
Q_Date.SQL.Clear;
Q_Date.SQL.Add(´Select * from parcelas where dat_venci between :ddt_ini and :ddt_fim´);
Q_Data.Sql.Params[0].asdatetime := a_sua_data_inicial;
Q_Data.Sql.Params[1].asdatetime := a_sua_data_final;
Q_Date.Open;
Com isto resolve o seu problema de formatação de data.
Abraços
Rodolfo
Gostei + 0
26/08/2008
Jarabeucp
se alguem tiver com a mesma duvida a solução do amigo [b:56bc545df7]rodolfo.pirolo[/b:56bc545df7] funciona 100¬.
mais a todos muito obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)