Eu tenho uma tabela com uma coluna de data. Eu usei JDBC para salvar um objeto java.util.Date na tabela.
Quando executo a seguinte consulta, obtenho data e também um valor de tempo:
select To_CHAR(departure_date,'DD-MM-YYYY HH:MI') from service
Isso me diz que a data é coluna também está armazenando tempo.
Isso é inesperado. O tipo de data não deveria descartar o valor do tempo como um tipo inteiro descarta dígitos fracionários?
O tipo de dados do Oracle
DATE
se comporta tanto como ANSIDATE
quanto como tipo deTIME
dados. Esta foi uma decisão de design que apenas a Oracle conhece o raciocínio.Acrescentarei que o Oracle não é o único RDBMS que não segue os padrões ANSI SQL dessa maneira.
Obviamente, você pode remover a parte do tempo com
TO_CHAR(departure_date,'DD-MM-YYYY')
.