jdm*_*hal 16 datetime hibernate hql
我正在寻找如何在HQL查询中执行日期/时间数学.具体来说,如何从current_timestamp()
函数结果中添加或减去(x)时间量?或者我是否必须为此放入SQL并希望运行的数据库支持它?
HQL查询示例:
FROM RandomThing
WHERE randomTime IS NOT NULL AND
randomTime >= current_timestamp() AND
randomTime <= (current_timestamp() + :timeToAdd)
Run Code Online (Sandbox Code Playgroud)
我可以将:timeToSubtract参数定义为任何特定单位,但是大于小时的任何内容都是不合需要的,并且秒是最理想的.
澄清:我意识到这可以在查询之外轻松完成.但是出于哲学原因,让我们说使用数据库服务器的时间非常重要,而不是查询系统的时间.实际示例:我正在查询最后(x)时间内所有条目的自动时间戳.由于时间戳是由数据库系统生成的,因此使用数据库的当前时间也很重要.
小智 10
为什么需要在查询中执行此操作?为什么不在java代码中处理它.
例如:
From RandomThing
Where randomTime is not null and
randomTime >= :currentTimestamp and
randomTime <= :maxTimestamp
Run Code Online (Sandbox Code Playgroud)
然后只需设置参数.
如果您需要数据库服务器的时间,您可以首先执行一个简单的 hql 查询来获取时间戳,然后在 java 中计算 maxTimestamp 并将获取的时间戳和计算出的 maxTimeStamp 传递给类似 ccclark 的查询。
归档时间: |
|
查看次数: |
39370 次 |
最近记录: |