当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《在HQL中执行日期/时间数学?》经验,为你挑选了1个好方法。

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

HQL查询示例:

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

我可以将:timeToSubtract参数定义为任何特定单位,但是大于小时的任何内容都是不合需要的,并且秒是最理想的.

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



1> 小智..:

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

例如:

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

然后只需设置参数.


由于Java代码可能无法在同一时钟上运行,并且在某些查询中,即使几秒钟的差异也可能会造成麻烦.
推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有