Получить записи с HQL-запросом между двумя датами - PullRequest
0 голосов
/ 14 апреля 2020

Я пытаюсь получить доступный автомобиль за период времени

SELECT c FROM Car c WHERE c NOT IN (SELECT r.car from Rental r WHERE r.startDateTime >= :startDate AND r.endDateTime <= :endDate)

Этот запрос недействителен. Например, мой endDate может быть больше r.endDateTime

Я пытаюсь исправить это с помощью МЕЖДУ , но мой запрос неверен

SELECT c FROM Car c WHERE c NOT IN (SELECT r.car FROM Rental r WHERE :startDate OR :endDate BETWEEN r.startDateTime AND r.endDateTime)

1 Ответ

1 голос
/ 14 апреля 2020

Ваш запрос должен выглядеть следующим образом:

SELECT c FROM Car c 
WHERE c NOT IN (SELECT r.car FROM Rental r 
                WHERE (:startDate BETWEEN r.startDateTime AND r.endDateTime)
                   OR (:endDate BETWEEN r.startDateTime AND r.endDateTime))
...