Я ищу, как выполнять математику даты/времени в запросе HQL. В частности, как мне добавить или вычесть (x) количество времени из результата функции current_timestamp()
? Или мне нужно отказаться от SQL для этого и надеяться, что всякая база данных будет поддерживаться?
Пример запроса HQL:
FROM RandomThing
WHERE randomTime IS NOT NULL AND
randomTime >= current_timestamp() AND
randomTime <= (current_timestamp() + :timeToAdd)
Я могу определить параметр timeToSubtract как любой конкретный элемент, хотя ничего большего, чем часы, было бы нежелательным, и секунды были бы наиболее желательными.
ПОДТВЕРЖДЕНИЕ: Я понимаю, что это легко сделать за пределами запроса. Но по философским соображениям, допустим, важно использовать время сервера базы данных, а не время системного запроса. Практический пример: я запрашиваю автоматическую метку времени для всех записей, сделанных в течение последнего (х) количества времени. Поскольку временная метка создается системой базы данных, важно также использовать текущее время базы данных.