有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何编写查询来比较具有时间间隔的两个时间戳之间的差异

我正试图根据两张邮票之间的一些比较来提取记录。这是我假定的代码,但它不起作用:

 @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:未知的数据类型:“?”;SQL语句

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

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

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

共 (1) 个答案

  1. # 1 楼答案

    试试这个:

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

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