Fórum Ajuda SQL consulta datas #150199

28/03/2003

0

Ola Pessoal,

Eu pedi ajuda ao fórum para fazer uma consulta entre datas, usando apenas o IF. 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:

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;

EditMask: __/__ (nao está no formato date)
Banco: DBF
Delphi:6.0


Aproveitando, gostaria de saber como ficaria o código para consultar pelo dia e o mes entre duas datas, datainicial e data final em sql.


Anonymous

Anonymous

Responder

Posts

28/03/2003

Rodrigo Ferreira

Ola Pessoal, Eu pedi ajuda ao fórum para fazer uma consulta entre datas, usando apenas o IF. 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: 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; EditMask: __/__ (nao está no formato date) Banco: DBF Delphi:6.0 Aproveitando, gostaria de saber como ficaria o código para consultar pelo dia e o mes entre duas datas, datainicial e data final em sql.


Ficaria assim colega:

Query.Close;
Query.SQL.Clear;
Query.SQL.Add(´Select * From Clientes Where DataIni=:DataIni and DataFin=:DataFin ´);
Query.parambymane(´DataIni´).AsDate := StrToDate(EditMask1.Text);
Query.parambymane(´DataFin´).AsDate := StrToDate(EditMask2.Text);
Query.Open

Obs: Esta instrucao ira pegar todos os Clientes que estao na data inicial e final informada no EditMask;

espero ter ajudado....
8)


Responder

Gostei + 0

28/03/2003

Anonymous

essta tmb:

DM.Table1.close;
DM.Table1.SQL.Clear;
ShortDateTime:=´mmddaa´;
DM.Table1.SQL.add(´select * From Clientes where DATAI>=DI and DataF<=DF order by nome´);
ShortDateTime:=´ddmmaa´;
DM.Table1.Open;


Espero ter contribuido...


Responder

Gostei + 0

28/03/2003

Anonymous

Obrigado Pessoal,

Mas eu nao keria consultar a data toda, o que eu keria era consultar somente pelo dia e o mes.

Vivian


Responder

Gostei + 0

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

Aceitar