[firebase-br] Select com datas

Anticlei Scheid clei em geous.com.br
Sáb Nov 5 11:27:45 -03 2011


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>
>



Mais detalhes sobre a lista de discussão lista