使用 Spring Data JPA 和 postgresql 将字符串转换为

我想从 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]


谁能帮助我如何做到这一点?


白猪掌柜的
浏览 176回答 1
1回答

慕桂英3389331

您必须在查询中转义冒号。试试下面:@Query(value&nbsp;=&nbsp;"select&nbsp;w&nbsp;from&nbsp;Worker&nbsp;w&nbsp;where&nbsp;w.update_date&nbsp;<&nbsp;to_timestamp(:date,&nbsp;'YYYY-MM-DD')\\:\\:timestamp&nbsp;without&nbsp;time&nbsp;zone",&nbsp;nativeQuery=true)&nbsp; List<Worker>&nbsp;findBeforeDate(@Param("date")&nbsp;String&nbsp;date);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java