Filtrar por datas
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.
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
Curtidas 0
Respostas
Fabio.hc
22/05/2004
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);
GOSTEI 0
Anjocurioso
22/05/2004
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?
GOSTEI 0
Aroldo Zanela
22/05/2004
Colega,
Outra forma:
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.
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.
GOSTEI 0
Marcelo.c
22/05/2004
Ou ainda:
Ressaltando que:
[quote:2023632f8b=´Aroldo Zanela´] ...sem o uso de parâmetros é necessário passar a data no formato mm/dd/yyyy.[/quote:2023632f8b]
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]
GOSTEI 0