Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabioRubim

Usando Betwen para pesquisar entre datas

Recommended Posts

Boa tarde pessoal...

Eu estava tentando fazer uma seleção de datas usando o BetWeen assim:

qryPesqProd.SQL.add('and Fat_Pedidos.DATEMI'+   between'+#39+FormatDateTime('dd/mm/yyyy',dtpInicial.Date)+#39+'and'+#39'+
'FormatDateTime('dd/mm/yyyy',dtpFinal.Date)+#39);
...

 

e da esse erro:

---------------------------
::.HIDRACOM.::
---------------------------
Tipo de dados imcompatível na expressão de critério.
---------------------------
OK   
---------------------------
.....Sim, iMcompatível com M.... http://forum.imasters.com.br/public/style_emoticons/default/upset.gif ...

Voltando...

agora se eu faço usando parâmetros dá certo:

qryPesqProd.SQL.add('and Fat_Pedidos.DATEMI between :DINI and :DFIM');
  qryPesqProd.Parameters.ParamByName('DINI').Value:=formatdatetime('dd/mm/yyyy',dtpInicial.Date);
  qryPesqProd.Parameters.ParamByName('DFIM').Value:=formatdatetime('dd/mm/yyyy',dtpFinal.Date);

 

gostaria de saber isso pq sei que tem como usar assim, mas não esta dando...ah sim, meu campo é do tipo Date/Time

 

 

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

qryPesqProd.SQL.add('and Fat_Pedidos.DATEMI between ''' + FormatDateTime('dd/mm/yyyy',dtpInicial.Date) + ''' and ''' + FormatDateTime('dd/mm/yyyy',dtpFinal.Date) + '''');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tmb não...por enquanto vou usando por parâmetros mesmo, se alguma hora souber pq ou alguém do forum ai volto a "cutucar" ali de novo ...isso deve ter alguma coisa a ber com os tipos de dados do Access:D

 

Obrigado Marcio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, uso dessa forma mudando pouca coisa e funciona muito bem...

Pode ser algo com o BD mesmo... formato de data e tudo mais... mas... se saber o que pode ser volte a postar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem no meu eu uso sem passar o parametro.

Abaixo vai como uso o codigo:

 

IBQuery.Close;

 

with IBQQuery.SQL do

 

begin

clear;

Add('where cast(query.campodata(Inclusão) as date) between ' + quotedstr(FormatDateTime('yyyy-mm-dd', eDataInicial.Date)) + ' and ' + quotedstr(FormatDateTime('yyyy-mm-dd', eDataFinal.Date)));

 

end;

 

No meu caso estou usando em um relatorio, ele consulta as datas de inclusão e defino o periodo inicial ate o final e ele me retorna todos os dados cadastrados naquele periodo...

 

Espero que ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dependendo do Banco precisa colocar a data entre aspas simples, outros precisa do # .... Tente assim:

 

with qryPesqProd do
begin
	Close;
	SQL.Clear;
	SQL.add('AND FAT_PEDIDOS.DATEMI BETWEEN ' + FormatDateTime('#yyyy/mm/dd#', dtpInicial.Date) + ' AND ' + FormatDateTime('#yyyy/mm/dd#', dtpFinal.Date));
	Open;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.