Eu tenho um conjunto de horários de início e término que preciso armazenar em um banco de dados Oracle. Eu preciso armazená-los de uma maneira que os torne facilmente pesquisáveis (ou seja, uma pesquisa típica é encontrar todas as linhas em que um valor de tempo, como 9h30, fica entre o horário de início e o horário de término). No SQL Server, eu usaria apenas um campo de tipo de dados TIME, mas o Oracle não parece ter um equivalente.
Já vi vários blogs e fóruns que recomendam apenas usar um campo DATE e fazer conversões com TO_CHAR e depois comparar ou armazenar os valores de tempo como campos varchar(4 / HHMM) ou varchar(6 / HHMMSS). Ambos parecem desnecessariamente ineficientes.
Existe uma maneira melhor ou mais eficiente de fazer isso no Oracle?