JPQL/HQL Obtener una parte de una Fecha de un columna de tipo Date Time

por | abril 29, 2014

Necesitaba extraer solo el día de una fecha y tenía la sentencia SQL para Oracle:

SELECT TO_CHAR(COLUMNA_FECHA,'dd') FROM mi_tabla WHERE ....

Ahora para hacer lo mismo, usando JPQL/HQL con Hibernate se puede hacer lo siguiente:

SELECT day(columnaFecha) FROM MiTabla WHERE ...

Como puede ser el día también es posible extraer cierta información como las horas, minutos, etc:

second(…), minute(…), hour(…), day(…), month(…), year(…)

Para más información la guia oficial:

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhql-expressions

Y una guía bastante completa sobre lo que se puede hacer con JPQL

http://forcedotcom.github.io/java-sdk/jpa-queries