在 HQL 中执行日期/时间数学?

2023-12-15

我正在寻找如何在 HQL 查询中执行日期/时间数学。具体来说,如何从结果中添加或减去 (x) 时间量current_timestamp()功能?或者我是否必须为此使用 SQL 并希望正在运行的任何数据库都支持它?

HQL查询示例:

FROM RandomThing
WHERE randomTime IS NOT NULL AND
      randomTime >= current_timestamp() AND
      randomTime <= (current_timestamp() + :timeToAdd)

我可以将 :timeToSubtract 参数定义为任何特定单位,但任何大于小时的单位都是不可取的,而秒是最理想的。

澄清:我意识到这可以在查询之外轻松完成。但出于哲学原因,假设使用数据库服务器的时间比查询系统的时间更重要。实际示例:我正在查询最近 (x) 时间内所做的所有条目的自动时间戳。由于时间戳是由数据库系统生成的,因此使用数据库的当前时间也很重要。


为什么需要在查询中执行此操作?为什么不直接在java代码中处理它呢?

例如:

From RandomThing
Where randomTime is not null and
      randomTime >= :currentTimestamp and
      randomTime <= :maxTimestamp

然后只需设置参数即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 HQL 中执行日期/时间数学? 的相关文章

随机推荐