Fórum como fazer pesquisa por data no delphi 2010 #601932
21/04/2019
0
Pessoal eu sou iniciante em delphi e queria ajuda pra faze uma pesquisa entre duas datas usando o datatimepicket,estou usando essa instrucao e nao esta dando certo me ajude, obrigado
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+'' '' +data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:=''AND(tabelacolheita.colheitadata > "%''+data1+''%")'';
sql[4]:=''AND(tabelacolheita.colheitadata < "%''+data2+''%")'';
Open
; DataModule1.ADOQueryBuscaCaixas.Open;
end;
RvProject2.Execute;
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+'' '' +data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:=''AND(tabelacolheita.colheitadata > "%''+data1+''%")'';
sql[4]:=''AND(tabelacolheita.colheitadata < "%''+data2+''%")'';
Open
; DataModule1.ADOQueryBuscaCaixas.Open;
end;
RvProject2.Execute;
Caio
Curtir tópico
+ 0
Responder
Post mais votado
22/04/2019
tente:
ou
ou ainda, no caso de usar SQL Server:
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+' '+data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(tabelacolheita.colheitadata BETWEEN :DATA1 AND :DATA2)';
Parameters.ParamByName('data1').AsDate := datetimepicker1.Date;
Parameters.ParamByName('data2').AsDate := datetimepicker2.Date;
Open;
end;ou
uses SQLTimSt;
....
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+' '+data2);
with DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(tabelacolheita.colheitadata BETWEEN :DATA1 AND :DATA2)';
Parameters.ParamByName('data1').AsSQLTimeStamp := DateTimeToSQLTimeStamp(datetimepicker1.Date);
Parameters.ParamByName('data2').AsSQLTimeStamp := DateTimeToSQLTimeStamp(datetimepicker2.Date);
Open;
end;ou ainda, no caso de usar SQL Server:
data1 := FormatDateTime('yyyymmdd', datetimepicker1.Date);
data2 := FormatDateTime('yyyymmdd', datetimepicker2.Date);
ShowMessage(data1+' '+data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(CONVERT(VARCHAR(8),tabelacolheita.colheitadata,112) BETWEEN '+data1+' AND '+data2+')';
Open;
end;Emerson Nascimento
Responder
Gostei + 1
Mais Posts
22/04/2019
Caio
tente:
ou
ou ainda, no caso de usar SQL Server:
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+' '+data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(tabelacolheita.colheitadata BETWEEN :DATA1 AND :DATA2)';
Parameters.ParamByName('data1').AsDate := datetimepicker1.Date;
Parameters.ParamByName('data2').AsDate := datetimepicker2.Date;
Open;
end;ou
uses SQLTimSt;
....
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+' '+data2);
with DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(tabelacolheita.colheitadata BETWEEN :DATA1 AND :DATA2)';
Parameters.ParamByName('data1').AsSQLTimeStamp := DateTimeToSQLTimeStamp(datetimepicker1.Date);
Parameters.ParamByName('data2').AsSQLTimeStamp := DateTimeToSQLTimeStamp(datetimepicker2.Date);
Open;
end;ou ainda, no caso de usar SQL Server:
data1 := FormatDateTime('yyyymmdd', datetimepicker1.Date);
data2 := FormatDateTime('yyyymmdd', datetimepicker2.Date);
ShowMessage(data1+' '+data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(CONVERT(VARCHAR(8),tabelacolheita.colheitadata,112) BETWEEN '+data1+' AND '+data2+')';
Open;
end;parceiro boa noite amigo estou temdo dificuldade
na primeira instrucao q vc me passou .AsDate fica sublinado em vermelho
na segunda AsSQLTimeStamp fica em vermelho
Responder
Gostei + 0
23/04/2019
Emerson Nascimento
Coloquei várias opções porque eu não tenho Delphi instalado, então não tenho como passar algo mais preciso, logo aquilo é só um "norte".
De qualquer forma, se assim não funcionar:
tente a terceira opção apresentada na postagem anterior:
Uma dica: quando você postar uma dúvida, dê detalhes do teu ambiente: linguagem utilizada e versão do IDE, banco de dados e versão, e o que mais puder passar, para que a ajuda seja o mais personalizada possível, porque esta última sugestão funciona para SQL Server. Se estiver utilizando Oracle, troque CONVERT(VARCHAR(8),tabelacolheita.colheitadata,112) por TO_CHAR(tabelacolheita.colheitadata, 'YYYYMMDD').
De qualquer forma, se assim não funcionar:
data1:= datetostr(datetimepicker1.Date);
data2:= datetostr(datetimepicker2.Date);
ShowMessage(data1+' '+data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(tabelacolheita.colheitadata BETWEEN :DATA1 AND :DATA2)';
Parameters.ParamByName('data1').Value := datetimepicker1.Date;
Parameters.ParamByName('data2').Value := datetimepicker2.Date;
Open;
end;tente a terceira opção apresentada na postagem anterior:
data1 := FormatDateTime('yyyymmdd', datetimepicker1.Date);
data2 := FormatDateTime('yyyymmdd', datetimepicker2.Date);
ShowMessage(data1+' '+data2);
With DataModule1.ADOQueryBuscaCaixas do
begin
if active then close;
sql[3]:='AND(CONVERT(VARCHAR(8),tabelacolheita.colheitadata,112) BETWEEN '+data1+' AND '+data2+')';
Open;
end;Uma dica: quando você postar uma dúvida, dê detalhes do teu ambiente: linguagem utilizada e versão do IDE, banco de dados e versão, e o que mais puder passar, para que a ajuda seja o mais personalizada possível, porque esta última sugestão funciona para SQL Server. Se estiver utilizando Oracle, troque CONVERT(VARCHAR(8),tabelacolheita.colheitadata,112) por TO_CHAR(tabelacolheita.colheitadata, 'YYYYMMDD').
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)