Parâmetros tipo data, usando dbExpress e Oracle TimeStamp

18/10/2004

0

Tenho uma consulta de pedidos de um intervalo de de datas que não retorna o que foi pedido. A instrução SQL no SQLDataSet é:

SELECT * FROM PEDIDOS
WHERE DAT_FATURAMENTO BETWEE :DATA_INICIAL AND :DATA_FINAL;

Ocorre que se eu peço um intervalo de 23/10/2004 a 24/10/2004, a consulta retorna os dados do dia 24 apenas, e assim por diante. Pra resolver, tive que usar um artifício no mínimo estranho, usando a expressâo ´BETWEEN :DATA_INICIAL - 1 AND :DATA_FINAL´ no lugar da original. Esta consulta, se efetuada pelo SQLPLUS funciona perfeitamente.

Gostaria de saber se alguém já teve este problema, e como resolveu.

Grato.


Antonio_zanotto

Antonio_zanotto

Responder

Posts

18/10/2004

Gandalf.nho

[b:f75af800c6][color=red:f75af800c6]Notificação de Infração às Regras de Conduta :[/color:f75af800c6][/b:f75af800c6]

Tópico no fórum errado (deveria estar em Oracle)

Para maiores esclarecimentos pode mandar-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=8378]Mensagem Particular[/url].


Responder

18/10/2004

Afarias

já vi esse ´problema´ ocorrer mas mostrando apenas datas do dia anterior (23 no seu caso) -- nestes casos, é simplesmente pq o campo é data-hora e dai, quando comparado com datas, pro banco fica::

data-hora between ´23.10.2004 00:00:00´ and ´24.10.2004 00:00:00´

o q excluiria os registros com data ´24.10.2004´ vistos q todos teriam uma parte HORA > 00:00:00

mas pelo jeito não é o seu caso.
:(



T+


Responder

18/10/2004

Motta

o TRUNC resolve estes casos, o problema é que pode matar o uso de um indice

select *
from tabela
where trunc(data) between :d1 and :d2

atenção ao que for passado para os param.
ver se tem hora.


Responder

22/10/2004

Antonio_zanotto

Na verdade, o meu problema não é com o Oracle, e sim com o Delphi. Se executar a mesma consulta no SqlPlus, por exemplo, o resultado será correto. O que me leva a crer que talvez o problema esteja com o o dbExpress do Delphi.


Responder

22/10/2004

Motta

Publique o form onde passa os parametros


Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar