Estoy buscando cómo realizar la matemática de fecha/hora dentro de una consulta HQL. Específicamente, ¿cómo agrego o resta (x) la cantidad de tiempo del resultado de la función current_timestamp()
? ¿O tengo que recurrir a SQL para esto y espero que cualquier base de datos que se esté ejecutando lo soporte?Ejecutando fecha/hora Matemáticas en HQL?
HQL consulta de ejemplo:
FROM RandomThing
WHERE randomTime IS NOT NULL AND
randomTime >= current_timestamp() AND
randomTime <= (current_timestamp() + :timeToAdd)
I puede definir el: parámetro timeToSubtract ser cualquier unidad particular, aunque nada más grande que hora sería indeseable, y segundos sería más deseable.
ACLARACIÓN: Me doy cuenta de que esto se puede hacer fácilmente fuera de la consulta. Pero por razones filosóficas, digamos que es importante utilizar el tiempo del servidor de la base de datos, en lugar del tiempo del sistema de consultas. Ejemplo práctico: estoy consultando una marca de tiempo automática para todas las entradas realizadas dentro del último (x) período de tiempo. Dado que la marca de tiempo la realiza el sistema de base de datos, también es importante utilizar la hora actual de la base de datos.
También estoy buscando lo mismo, excepto que timeToAdd no es un parámetro, sino una columna de la misma fila, por lo que no tiene sentido realizar una segunda consulta a la misma fila y tabla. – James