como fazer pesquisa por data no delphi 2010
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
Curtidas 0
Melhor post
Emerson Nascimento
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;
GOSTEI 1
Mais Respostas
Caio
21/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;
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
GOSTEI 0
Emerson Nascimento
21/04/2019
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').
GOSTEI 0