Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tatiane.InterArt

[Resolvido] Pesquisa por intervalo de datas

Recommended Posts

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal resolvido...

 

conheci um comando chamado between que mudou meu conceito! huahuahua

no fim a pesquisa funciona e o código ficou assim:

 

IBQuery1.Close;

IBQuery1.SQL.Clear;

IBQuery1.SQL.Add(' Select * from Ligacao where Data between '''+MaskEdit1.Text+''' and '''+MaskEdit2.Text+'''');

IBQuery1.Open;

 

Fica aí a dica para outros iniciantes como eu que possam precisar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo ... o Operador Between realmente é um salva vidas hehehe

vale a pena dar uma conferida no operador IN tbm ...

SELECT ID_CLIENTE, NOMECLIENTE FROM CLIENTES WHERE DTANASCIMENTO IN('1970-10-27','1973-12-12')

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.