如何编写查询以比较两个时间戳与时间间隔之间的差异

时间:2014-10-03 17:18:30

标签: java jpa timestamp

我试图根据两个timstamp之间的比较来提取记录。这是我的假设代码,但它不起作用:

 @Query("SELECT n FROM table1 n  WHERE n.status IN ('FAILED') AND  :currentDate-    n.updatedDate > n.interval/24*60*60")

List<Entity> findAllSuchEntities(@Param("currentDate") DateTime currentDate);

错误消息是:org.h2.jdbc.JdbcSQLException:未知数据类型:&#34;?&#34 ;; SQL语句。

相比之下,以下查询可以通过编译:

 @Query("SELECT n FROM table1 n  WHERE n.status IN ('FAILED') AND  :currentDate > n.updatedDate")

List<Entity> findAllSuchEntities(@Param("currentDate") DateTime currentDate);

1 个答案:

答案 0 :(得分:0)

试试这个:

@Query("SELECT n FROM table1 n WHERE n.status IN ('FAILED') AND n.updatedDate < (:currentDate - (n.interval/24*60*60))")

这也是一个更好的解决方案,因为您之前的查询很可能会导致全表扫描。