MISTÉRIO EM CONSULTA NO ORACLE???

MARCOS 31/08/2016 10:19:53
#466346
Bom dia!
Colegas,constatei algo e peço se for possível
orientação dos colegas:

O problema:

Estou me conectando a um Banco de Dados Oracle (10 G), utilizando
VB.NET ( OleDB).Neste Banco tenho uma tabela simples, com um campo do tipo Date.
Ao realizar uma consulta, utilizando um intervalo de Datas percebi que a instrução não retorna dados da última
data. Fiquei surpreso.

A dúvida:

Afinal a consulta abaixo não deveria retornar todos os registros dentro do intervalo citado.Inclusive a data inicial e final?

Obs: Só retorna os registros com a data inicial e as intermediárias. Mas os registros com a data final não !!!


A instrução Sql:

select Usuario,Atividade,Dat from TbAtividade where Dat between TO_DATE( [ô]01/08/2016[ô],[ô]DD/MM/YYYY[ô])[Ô]
and TO_DATE([ô]31/08/2016[Ô] [ô],[ô]DD/MM/YYYY HH24:mi:ss[ô]) and usuario = [ô]MARIA[ô]


Algum colega, sabe se existe uma explicação para isto em Sql ou no Oracle ???


OCELOT 31/08/2016 10:28:30
#466348
Resposta escolhida
O seu campo Dat não possui informações de hora nele?

Se sim então esse é o problema, veja que se o valor no campo Dat for maior ou igual a [ô]31/08/2016 00:00:01[ô] ele já não entra no resultado pois o valor é maior que a data máxima que você está procurando, que é [ô]31/08/2016 00:00:00[ô]

Não tenho experiência com Oracle, mas eu diria que você pode tentar mudar a data máxima para

TO_DATE([ô]31/08/2016 23:59:59[Ô] [ô],[ô]DD/MM/YYYY HH24:mi:ss[ô])
MARCOS 31/08/2016 16:30:18
#466366
Obrigado,Ocelot!
De fato,o problema era o horário !
Tópico encerrado , respostas não são mais permitidas