Fórum Filtrar por datas #233788

22/05/2004

0

Preciso gerar uma consulta que me dê os registros entre duas dadas.

Estou fazendo assim:
TabCaixaDiario.SQL.Add(´SELECT * FROM Tab_CaixaDiario WHERE Data >= ´ + MaskDataInicial.Text + ´ AND Data <= ´ + MaskDataFinal.Text);

Mas está vindo a tabela vazia. O que pode estar errado?

Uso Access com ADO.

Desde já agradeço.


André Maretti

André Maretti

Responder

Posts

22/05/2004

Fabio.hc

Tente assim:

TabCaixaDiario.SQL.Add(´SELECT * FROM Tab_CaixaDiario WHERE Data between :datainicial AND :datafinal´);
TabCaixaDiario.ParamByName(´datainicial´).AsDate:=StrToDate(MaskDataInicial.Text);
TabCaixaDiario.ParamByName(´datafinal´).AsDate:=StrToDate(MaskDataFinal.Text);



Responder

Gostei + 0

22/05/2004

Anjocurioso

Resposta rapida, o Sql entendende data pra consulta como string, portanto, voce precisa colocar as datas entre aspas, portanto o correto seria voce colocar antes e depois da data + ´´´´ + data + ´´´´ + entendeu?


Responder

Gostei + 0

23/05/2004

Aroldo Zanela

Colega,

Outra forma:

TabCaixaDiario.SQL.Add(´SELECT * FROM Tab_CaixaDiario WHERE Data >= ´ + QuotedStr(MaskDataInicial.Text) + ´ AND Data <= ´ + QuotedStr(MaskDataFinal.Text)); 


Lembrando ainda que, sem o uso de parâmetros é necessário passar a data no formato mm/dd/yyyy. O exemplo do Fábio.HC é melhor, principalmente, se você utilizar componentes DateTimePicker ao invés de MaskEdit.


Responder

Gostei + 0

23/05/2004

Marcelo.c

Ou ainda:

TabCaixaDiario.SQL.Add(´SELECT * FROM Tab_CaixaDiario WHERE Data BETWEEN ´ + QuotedStr(MaskDataInicial.Text) + ´ AND ´ + QuotedStr(MaskDataFinal.Text));


Ressaltando que:
[quote:2023632f8b=´Aroldo Zanela´] ...sem o uso de parâmetros é necessário passar a data no formato mm/dd/yyyy.[/quote:2023632f8b]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar