Как узнать день недели от даты? - PullRequest
0 голосов
/ 15 октября 2018

Для одной из моих выборок мне нужно проверить, если DOW(date) IN :listOfDow:

@Query("SELECT event FROM Event event WHERE DOW(event.date) IN :dows")
List<Events> getEvents(@Param("dows") Collection<DayOfWeek> dows);

Очевидно, DOW() не существует.Итак, есть ли способ сделать это в HQL?

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете попробовать использовать вызовы функций JPQL, такие как WHERE function('dayofweek', event.date) IN :dows, но это очень специфично для базы данных.

dayofweek - специфичная для MySQL функция, возвращающая 1-7, где 1 - воскресенье, а 7 - субботагде as weekday возвращает 0-6, а 0 - понедельник.

Если вы используете Postgres, вы можете использовать function('date_part', 'dow', event.date), чтобы получить воскресенье, начинающееся с 0.

Если выПри использовании другой базы данных вам придется проверить ее документацию, чтобы найти подходящую функцию, которая также зарегистрирована выбранным диалектом Hibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...