【发布时间】:2019-10-15 06:34:12
【问题描述】:
我已经构建了以下 JPQL 查询,根据传入的时间戳发送结果。 我希望对此进行修改并传入一个数字,而不是月份值,并获取过去 6 个月的所有结果。
如果相关,我正在使用 Oracle DB。我尝试在此查询中传入 datediff 方法,但它会引发编译错误。 有没有办法做到这一点?
我当前的查询。
@Query("SELECT SUM(urlCount.referEventTotalCount) " +
"FROM UrlCountEntity urlCount " +
"JOIN urlCount.eventTypes et " +
"WHERE urlCount.url.urlTx IN :urls " +
"AND et.referEventTypeDs =:eventType " +
"AND urlCount.updateTimeStamp <=:timeStamp")
Integer getTotalCount(@Param("urls") List<String> urls, @Param("eventType")String eventType, @Param("timeStamp")Timestamp timeStamp);
寻找修改行 -> "AND urlCount.updateTimeStamp
@Query("SELECT SUM(urlCount.referEventTotalCount) " +
"FROM UrlCountEntity urlCount " +
"JOIN urlCount.eventTypes et " +
"WHERE urlCount.url.urlTx IN :urls " +
"AND et.referEventTypeDs =:eventType ")
// "AND urlCount.updateTimeStamp <=:timeStamp") // instead of this, pass in the numOfMths value to calculate how much data to show (example past 3 mths)
Integer getTotalCount(@Param("urls") List<String> urls, @Param("eventType")String eventType, @Param("numOfMths")int numOfMths);
【问题讨论】:
-
您为什么不简单地修改查询以选择在特定时间戳阈值之后的任何内容,然后传入当前时间对应于“6 个月前”的任何时间戳?