jueves, 29 de mayo de 2014

Filtrar Datos Por Hora en Oracle

Para filtrar datos de una tabla por la hora unicamente, sin tener en cuanta la fecha, entonces podemos utilizar la siguiente sentencia:

SELECT VISCAIHOR
FROM FAVISCAI
WHERE TO_CHAR(VISCAIHOR,'HH24:MI:SS') = TO_CHAR(?,'HH24:MI:SS')

SELECT VISCAIHOR
FROM FAVISCAI
WHERE TO_CHAR(VISCAIHOR,'HH24:MI:SS') = '17:53:04'

En la primera, el signo de interrogación se cambiaria por un DateTime que llegue como parámetro.
En la segunda, la hora se pasaria como un String, pero se corre el peligro que no se castee bien, por lo cual es mejor utilizar la primera opción.