[firebase-br] Select com datas
Pedro Leonardo
pleonardomv em bol.com.br
Sáb Nov 5 11:54:55 -03 2011
Pessoal tentei assim :
QueryBusca.Close;
QueryBusca.SQL.Clear;
QueryBusca.SQL.Text := 'select * from Registro where Cod =:P00
and :pDataAtual between DataInI and DataFim';
QueryBusca.ParamByName('P00').AsString:= trim(EdtCodigo.Text);
QueryBusca.ParamByName('pDataAtual').AsDate:= DATE;
QueryBusca.ParamByName('DATAINI').AsDate:= DateDataINI.Date; //
QueryBusca.ParamByName('DATAFIM').AsDate:= DateDataFim.Date ; //
QueryBusca.Open;
Retorna um erro dizendo "Parameter DataIni not found (nao encontrado)"
Oque pode ser?
Obrigado
Leonardo
--------------------------------------------------
From: "Anticlei Scheid" <clei em geous.com.br>
Sent: Saturday, November 05, 2011 11:27 AM
To: "FireBase" <lista em firebase.com.br>
Subject: Re: [firebase-br] Select com datas
> Bom dia Leonardo
>
> Você inverteu os sinais de > e <, veja a correção :
>
> select * from Registro where Cod =:P00 and DataInicio <= :pDataAtual and
> DataFim >= :pDataAtual
>
> que é equivalente a :
>
> select * from Registro where Cod =:P00 and :pDataAtual >= DataInicio
> and :pDataAtual
> <= DataFim
>
> mais fácil de entender e equivalente a :
>
> select * from Registro where Cod =:P00 and :pDataAtual between DataInicio
> and DataFim
>
> e não precisa usar dois parâmetro para a data atual (P01 E P02) pode usar
> somente um, pois se usar dois eles vão ter o mesmo valor : a data de hoje
> por exemplo
>
>
> Abraço
>
> Clei
> Geous Consultoria e Sistemas
>
>
> Em 5 de novembro de 2011 09:51, Pedro Leonardo
> <pleonardomv em bol.com.br>escreveu:
>
>> Pessoal, estou tentando fazer um select usando datas e não encontrei
>> solucao
>>
>> Tenho um produto cadastrado com a data de vigência do mesmo. Tipo
>>
>> vDataIni = data inicial de vigência do produto
>> vDataFim = Data final de vigência do produto
>>
>> Preciso fazer um select para comparar se a data de hoje está entre a data
>> inicial e final, mas nao posso usar between
>>
>> Exemplo:
>>
>> QueryBusca.SQL.Text := 'SELECT * FROM REGISTRO WHERE Cod =:P00 and
>> DATAINICIO >:P01 AND DATAFIM <: P02 ';
>>
>> Mas não retorna nada porque essa logica está errada. Teria como usar um
>> OR
>> no lugar de AND?
>>
>> Obrigado
>> Leonardo
>>
>>
>>
>>
>> ______________________________**________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/**artigo.php?id=1107<http://www.firebase.com.br/fb/artigo.php?id=1107>
>> Para consultar mensagens antigas:
>> http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista