GARANTIR DESCONTO

Fórum Pesquisa por intervalo de Datas #354787

04/03/2008

0

Para otimização de código, consegui encontrar na Net uma forma de somar dias a uma data fixa e pesquisar por ele, porém o que preciso agora é comparar duas datas:

sendo Data1 < Data2, já manipulei os MaskEdits para não deixar inserir data inicial maior que a final, sei que há uma forma de se fazer isso, só não estou sabendo como!

Bem, nas pesquisas por períodos fixos, tipo 15,20,25 e 30 dias à partir do dia informado estou usando:

Data=DateToStr(IncDay(StrToDate(MaskEdit1.Text), StrToInt(Edit1.Text)));
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´Select * from Ligacao where Data=´´´+Data+´´´´);
IBQuery1.Open;

Na verdade acredito que o período deva ser um pouco diferente, consegui encontrar na net uma função que me retorne a quantidade de dias entre o período:
Var Dia:Integer;
Begin
Dia:=DaysBetween(StrToDate(MaskEdit1.Text),StrToDate(MaskEdit2.Text));

O que preciso agora é saber como faço para montar o código SQL para esta pesquisa, relembrando que minha variável Data é string e já trabalho com esse software a algum tempo e não há uma maneira de mudar agora!

Uso Delphi6 e InterBase
A tabela em questão:

LIGACAO
Codigo
Data
Hora
Solicitado
Telefone
Falou

nesta tabela existirá toda a relação de ligações feitas, e a pesquisa é para facilitar a visualização das ligações dentro do período da conta telefônica para comparação.

Se alguém puder me ajudar nesta questão agradeço!


Tatiane

Tatiane

Responder

Posts

04/03/2008

Ferreia2

Data=DateToStr(IncDay(StrToDate(MaskEdit1.Text), StrToInt(Edit1.Text))); 
IBQuery1.Close; 
IBQuery1.SQL.Clear; 
IBQuery1.SQL.Add(´Select * from Ligacao where Data=´´´+Data+´´´´); 
IBQuery1.Open; 


Não seria isso?

IBQuery1.SQL.Add(´Select * from Ligacao where Data between :DataIni and DataFim´);
IBquery1.parambyname(´DataIni´).asstring := Data;
IBquery1.parambyname(´DataFim´).asstring := Sua Variavel de data Final;
IBQuery1.Open;


Responder

Gostei + 0

04/03/2008

Tatiane

Na verdade vc acabou confundindo os comentários mas me ajudou muito, essa pesquisa por incremento de dias fixos eu já faço, só não sabia como fazer um que fosse entre duas datas tipo:

10/01/08 a 20/03/08

tentei fazer dessa maneira com as variáveis sabe e acabou não me retornando absolutamente nada, mas aproveitei um pouquinho disso para fazer outras tentativas e acabou funcionando assim:

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add(´ Select * from Ligacao where Data between ´´´+MaskEdit1.Text+´´´ and ´´´+MaskEdit2.Text+´´´´);
IBQuery1.Open;

Valeu a ajuda!


Responder

Gostei + 0

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

Aceitar