Pesquisa por intervalo de datas no delphi com interbase

Delphi

20/11/2007

Estou usando Delphi e InterBase como banco de dados e já tentei várias possibilidades de pesquisa por intervalo de datas.
Agradeço antecipadamente! :)


Tatiane

Tatiane

Curtidas 0

Respostas

Sremulador

Sremulador

20/11/2007

você pode utilizar o between ou <>


GOSTEI 0
Itepi

Itepi

20/11/2007

Ex:
SELECT * FROM TABELA WHERE DATA BETWEEN :DATA1 AND :DATA2


Onde :DATA1 e :DATA2 são parametros que serão informados em tempo de execução.


GOSTEI 0
Tatiane

Tatiane

20/11/2007

Na minha tela de pesquisa mesmo atribuindo os valores das datas tipo

Data1:=MaskEdit1.Text;
Data2:=MaskEdit2.Text;

ainda dá erro quando uso esse código, olha só como está!, sei lah talvez também to fazendo errado!

procedure TFrmAgenda.BtPesquisarClick(Sender: TObject);
Var Data1,Data2: String;
begin
if RadioGroup1.ItemIndex=-1 then
Begin
Showmessage(´Selecione o tipo de pesquisa que deseja realizar!´);
end;

Pes:=´´;

if RadioGroup1.ItemIndex=0 then
begin
If (MaskEdit1.Text <> ´´) then
If (Pes=´´) then
Pes:=´Where Data=´´´+MaskEdit1.Text+´´´´;
end
else
if RadioGroup1.ItemIndex=1 Then
Begin
If (MaskEdit1.Text <> ´´) then
If (Pes=´´) then
Pes:=´Where Data=´´´+MaskEdit1.Text+´´´´;
end
else
if RadioGroup1.ItemIndex=2 then
Begin
Data1:=MaskEdit1.Text;
Data2:=MaskEdit2.Text;
If (Pes=´´) then
Pes:=´Where Data Between :Data1 and :Data2´;
end;

FrmApresenta.IBTransaction1.Commit;
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´Select * From Tarefas ´+Pes);
IBQuery1.Open;

end;


GOSTEI 0
Gandalf.nho

Gandalf.nho

20/11/2007

Experimente usar um componente DateTimePicker ao invés de MaskEdit para datas e procure passar os valores como parâmetros em vez de concatenar o valor diretamente na expressão. Isso permite passar a o valor diretamente como data, sem os problemas causados por más conversões para string.


GOSTEI 0
Tatiane

Tatiane

20/11/2007

Nossa cara valeu mesmo, agora ta funcionando direitinho! Ficou até mais enxuto!


GOSTEI 0
POSTAR