GARANTIR DESCONTO

Fórum Pesquisa entre datas utilizando SQL #177342

25/08/2003

0

Boa Tarde!!

Alguém pode me ajudar com este dilema?? :D
Sempre fiz consulta entre datas assim

If DateTimePicker2.DateTime < DateTimePicker1.DateTime then
begin
Messagedlg(´A Data Final está maior que a Data Inicial. Informe novamente...´,mtcustom,[mbok],0);
end
Else
begin
qrbusca.Close;
qrbusca.SQL.Clear;
qrbusca.SQL.Text := ´Select * from ´TbCheck.db´ che Where datainicio between :data1 and :data2 Order by datainicio´;
qrbusca.Params[0].Asstring :=DatetoStrDateTimePicker1.DateTime);
qrbusca.Params[1].Asstring :=DatetoStrDateTimePicker2.DateTime);
end;

Acho que esse é um jeito certo de fazer essa pesquisa, mas quando vou fazer ele não traz os registros que estão entre as datas..
Ex:
Tenho 2 registros:
Data 1: 25/08/2003
Data2: 25/08/2002

Se eu colocar uma pesquisa entre 01/08/2002 e 30/08/2003 ele tem que me trazer os dois e ele não traz.. Ele só está trazendo se eu colocar a data inicial 25/08/2002 e a data final 25/08/2003..

Alguém sabe o que está acontecendo??

Obrigado
Rafaela


Rafaela

Rafaela

Responder

Posts

25/08/2003

Seek

[color=blue:7954bd7b43]
Faça o seguinte:

with q1 do // q1 é a query
begin
if active then close;
sql.text := ´ Select * from tabela ´+
´ Where datainicio between :data1 and :data2 ´+
´ order by datainicio ´;
params[0].asdate := DateTimePicker1.Date; // 1a. data
params[1].asdate := DateTimePicker2.Date; // 2a. data
Open;
end;

// Tente desta maneira...
[/color:7954bd7b43]


Responder

Gostei + 0

25/08/2003

Rafaela

Seek esse código não é quase igual ao outro? Tem alguma coisa diferente mas creio q dá na mesma, não dá?


Responder

Gostei + 0

25/08/2003

Rafaela

:arrow:


Responder

Gostei + 0

25/08/2003

4_olho

Rafaela,

você não observou, mas o Seek está tratando os dados como se deve: como datas, enquanto você os trata como ´strings´ e há de concordar que:

[b:3e01660bfd]25/05/2003[/b:3e01660bfd] é menor que [b:3e01660bfd]30/01/1900 [/b:3e01660bfd]se considerarmos isto como ´string´. Quando comparamos datas como strings, deve-se usar o layout AAAA/MM/DD e não DD/MM/AAAA.


Responder

Gostei + 0

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

Aceitar