我正在寻找如何在 HQL 查询中执行日期/时间数学。具体来说,如何从current_timestamp()
函数的结果中添加或减去 (x) 时间量?或者我是否必须为此投入 SQL 并希望正在运行的任何数据库都支持它?
HQL 查询示例:
FROM RandomThing
WHERE randomTime IS NOT NULL AND
randomTime >= current_timestamp() AND
randomTime <= (current_timestamp() + :timeToAdd)
我可以将 :timeToSubtract 参数定义为任何特定单位,但任何大于小时的单位都是不可取的,而秒是最可取的。
澄清:我意识到这可以在查询之外轻松完成。但是出于哲学原因,假设使用数据库服务器的时间而不是查询系统的时间很重要。实际示例:我正在查询在最后 (x) 时间内创建的所有条目的自动时间戳。由于时间戳是由数据库系统生成的,因此使用数据库的当前时间也很重要。