Fórum SQL com consulta entre 2 datas #217612

02/03/2004

0

[b:f9a67d9605]Preciso da ajuda de quem puder me dar uma solução para o seguinte problema:
Num determinado form coloquei 2 DateTimePicker (1 para a data inicial e o outro para a data final), e um botão que quando clicado executa esta rotina:

If DateTimePicker2.Date < DateTimePicker1.Date Then
begin
ShowMessage(´Intervalo de datas inválido, a data inicial é maior que a data final!´);
DateTimePicker2.Date := DateTimePicker1.Date;
end
Else
begin
Inicio := DateToStr(DateTimePicker1.Date);
Final := DateToStr(DateTimePicker2.Date);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := ´SELECT Nome,Empresa FROM Contatos WHERE Data >=:pInicial and Data<=:pFinal ORDER BY Nome´;
Query1.ParamByName(´pInicial´).AsDateTime := StrToDate(Inicio);
Query1.ParamByName(´pFinal´).AsDateTime := StrToDate(Final);
Query1.Prepare;
Query1.Open;
DBGrid1.SetFocus
end;
Label3.Caption := ´Total de contatos: ´ + IntToStr(Query1.RecordCount)

O problema é que quando eu coloco uma data abaixo do ano 2000, a consulta é sempre vazia, a sql informa que não encontrou dados, mas exitem dados abaixo deste ano (1999 por exemplo). Quando a consulta é de 2000 para frente aí dá tudo certo. Será que tem alguma coisa a ver com o ´bug do milênio´, ou seja quando eu escolho como data inicial por exemplo: 01/01/99, a consulta entende que é 01/01/2099 ?
O que faço, existe alguma outra rotina onde posso fazer esta consulta? Ou será que é alguma opção do DatetimePicker?
Alguém tem alguma idéia?
_________________________________
:arrow: Em terra de programador, quem tem Delphi é rei.[/b:f9a67d9605]


Ponce :)

Ponce :)

Responder

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

Aceitar