我想从 Postgresql 获取所选日期之前的所有记录。日期是字符串。在我看来,最简单的方法是使用 to_timestamp 将字符串转换为时间戳。select * from workers where update_date < to_timestamp('2018-08-11', 'YYYY-MM-DD')::timestamp without time zone;我在我的存储库中创建了如下方法,但它不起作用。@Query("select w from Worker w where w.update_date < to_timestamp(:date, 'YYYY-MM-DD')::timestamp without time zone") List<Worker> findBeforeDate(@Param("date") String date);它抛出org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌::靠近第 1 行,第 104 列 [select w from com.oksa.workreport.doma.Worker w where w.update_date < to_timestamp(:date, 'YYYY-MM-DD')::timestamp without time zone]谁能帮助我如何做到这一点?
1 回答
慕桂英3389331
TA贡献2036条经验 获得超8个赞
您必须在查询中转义冒号。试试下面:
@Query(value = "select w from Worker w where w.update_date < to_timestamp(:date, 'YYYY-MM-DD')\\:\\:timestamp without time zone", nativeQuery=true) List<Worker> findBeforeDate(@Param("date") String date);
添加回答
举报
0/150
提交
取消