Intervalo de datas em SQL

Delphi

10/10/2003

Olá pessoal estou tentando fazer uma consulta em SQL que me retorne os registros que foram criados em uma determinada data. Estou usando o Delphi 5 e ADO. Estou tentando usar o seguinte codigo:

Var Inicio, Final: String;
begin
If DateTimePicker2.Date < DateTimePicker1.Date Then
begin
ShowMessage(´Intervalo de datas inválido, a data inicial é maior que a data final!´);
DateTimePicker2.Date := DateTimePicker1.Date;
end
Else
begin
Inicio := DateToStr(DateTimePicker1.Date);
Final := DateToStr(DateTimePicker2.Date);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Text := ´SELECT * FROM Contatos WHERE Data >=:pInicial and Data<=:pFinal´;
ADOQuery1.Parameters.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
ADOQuery1.Parameters.ParamByName(´pFinal´).AsDateTime := StrToDate(Final);
ADOQuery1.Prepare;
ADOQuery1.Open;

Alquem sabe me dizer porque não funciona.
Desde já agradeço.

Emílio


Emilio

Emilio

Curtidas 0

Respostas

Bampavao

Bampavao

10/10/2003

VEJA SE ASSIM FUNCIONA...

ADOQuery1.SQL.Text := ´SELECT * FROM Contatos WHERE Data BETWEEN :pInicial AND :pFinal´;
ADOQuery1.Parameters.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
ADOQuery1.Parameters.ParamByName(´pFinal´).AsDateTime := StrToDate(Final);


GOSTEI 0
Tand

Tand

10/10/2003

Usa StrToDateTime.


:D

Abraços


GOSTEI 0
Emilio

Emilio

10/10/2003

Agora esta me retornando a seguinte mensagem: Undeclared identifer: ´ASDateTime´.

Existe alguma outra maneira de fazer esta consulta?
Desde já agradeço

Emílio


GOSTEI 0
Bampavao

Bampavao

10/10/2003

Não sei se vc usou a dika que dei, mas agora tenta assim

VEJA SE ASSIM FUNCIONA...

ADOQuery1.SQL.Text := ´SELECT * FROM Contatos WHERE Data BETWEEN :pInicial AND :pFinal´;
ADOQuery1.Parameters.ParamByName(´pInicial´).Value := StrToDate(Inicio);
ADOQuery1.Parameters.ParamByName(´pFinal´).Value := StrToDate(Final);


GOSTEI 0
POSTAR