将时间戳转换为jpql @query中的日期

时间:2019-03-28 10:01:32

标签: java postgresql orm spring-data-jpa jpql

我的Postgres查询是:

select * from student where id=1 and created_dt::date between '2019-03-27' and '2019-03-28'

我的JPQL查询是

@Query("SELECT st FROM Student st WHERE st.id =:id AND st.createdDate BETWEEN :startDate AND :endDate")

问题是created_dt的数据类型为没有时区的时间戳 我只想检查日期月份和年份,而忽略其余的日期。我如何在jpql查询中做到这一点

注意:我必须在jpql查询中进行更改。无法访问数据库更改。另外,我想在我的界面中更新@Query,没有替代方法。我尝试了类似的方法,但是工作却很简单。

@Query("SELECT st FROM Student st WHERE st.id =:id AND CAST(st.createdDate 
 as date) BETWEEN :startDate AND :endDate")

0 个答案:

没有答案