Consulta entre datas usando IF apenas pelo dia e mes
25/03/2003
0
Ola Pessoal,
Como eu posso fazer uma consulta entre datas, usando apenas o IF. Eu sei fazer com sql, mas neste caso nao me convem usar. Tenho 2 maskedit, um com a data final e outro com a data inicial, sendo que eu irei digitar apenas o dia e o mes que eu gostaria de consultar. Com a ajuda de um colega do forum, a pesquisa deu certo usando este código:
while not tabela.eof do
begin
if ([campo da tabela].asdatetime >= strtodate(data1.text)) and ([campo da tabela] <= strtodate(data2.text)) then
begin
[faça o que você quiser]
end;
tabela.next;
end;
Só que essa consulta pega a data toda, incluindo o ano. Eu gostaria que fosse apenas pelo dia e pelo mes.
EditMask: __/__ (nao está no formato date)
Banco: DBF
Delphi:6.0
Obrigado
Vivian
Como eu posso fazer uma consulta entre datas, usando apenas o IF. Eu sei fazer com sql, mas neste caso nao me convem usar. Tenho 2 maskedit, um com a data final e outro com a data inicial, sendo que eu irei digitar apenas o dia e o mes que eu gostaria de consultar. Com a ajuda de um colega do forum, a pesquisa deu certo usando este código:
while not tabela.eof do
begin
if ([campo da tabela].asdatetime >= strtodate(data1.text)) and ([campo da tabela] <= strtodate(data2.text)) then
begin
[faça o que você quiser]
end;
tabela.next;
end;
Só que essa consulta pega a data toda, incluindo o ano. Eu gostaria que fosse apenas pelo dia e pelo mes.
EditMask: __/__ (nao está no formato date)
Banco: DBF
Delphi:6.0
Obrigado
Vivian
Anonymous
Curtir tópico
+ 0
Responder
Posts
25/03/2003
Poeta Noturno
oi vivian, como vai?
Bom, neste caso vc vai ter que fazer da seguinte forma:
var
d1, d2, d3, m1, m2, m3, a1, a2, a3: word; (onde d=dia, m=mes, a=ano e 1 = data inicial, 2=data final, 3=data da tabela)
decodedate(strtodate(data1.text),a1,m1,d1);
decodedate(strtodate(data2.text),a2,m2,d2);
tabela.first;
while not tabela.eof do
begin
decodedate([campo].asdatetime,a3,m3,d3);
if ((d3>=d1) and (m3>=m1)) and ((d3<=d2) and (m3<=m2)) then
begin
[faça o que quiser];
end;
next;
end;
Espero que te sirva.
Um abraço
Poeta Noturno
Bom, neste caso vc vai ter que fazer da seguinte forma:
var
d1, d2, d3, m1, m2, m3, a1, a2, a3: word; (onde d=dia, m=mes, a=ano e 1 = data inicial, 2=data final, 3=data da tabela)
decodedate(strtodate(data1.text),a1,m1,d1);
decodedate(strtodate(data2.text),a2,m2,d2);
tabela.first;
while not tabela.eof do
begin
decodedate([campo].asdatetime,a3,m3,d3);
if ((d3>=d1) and (m3>=m1)) and ((d3<=d2) and (m3<=m2)) then
begin
[faça o que quiser];
end;
next;
end;
Espero que te sirva.
Um abraço
Poeta Noturno
Responder
Clique aqui para fazer login e interagir na Comunidade :)