MISTÉRIO EM CONSULTA NO ORACLE???
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 ???
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 ???
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[ô])
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[ô])
Obrigado,Ocelot!
De fato,o problema era o horário !
De fato,o problema era o horário !
Tópico encerrado , respostas não são mais permitidas