Преобразование строки в метку времени в @Query с использованием Spring Data JPA и postgresql - PullRequest
0 голосов
/ 11 января 2019

Я хотел бы получить от 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 Ответ

0 голосов
/ 11 января 2019

Вы должны будете избегать двоеточий в вашем запросе. Попробуйте ниже:

@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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...