【发布时间】:2012-06-18 11:39:39
【问题描述】:
这是来自 HQL 中的 WHERE 子句:
(current_timestamp() - c.m_some_time) >= :3000) // finding 3 seconds and older
它不起作用。
我看到了很多关于这个主题的问题,但他们都避免使用 current_timestamp() 而是使用 Java Date() 代替(使用 setString()),这对我来说是错误的,因为我需要精确度 .
我看到的另一种方法是派生方言并注册我自己的函数。这个好像太吹了。
有什么方法可以在纯内置 HQL 中进行简单的时间数学运算并将其与简单的毫秒/秒值进行比较?
另一个我很好奇的问题是为什么上面的 WHERE 子句确实通过了 HQL 的检查?我的意思是,这是一个有效的 HQL 查询的一部分(当其他 WHERE 子句是有效)。
【问题讨论】:
标签: java hibernate datetime date