JPQL Query Date с интервалом

Я использую JPA и JPQL. И я новичок в этом мире;-) Мой запрос теперь дает мне данные между двумя датами.

Query query =em.createQuery("SELECT d FROM DTable d JOIN d.history p WHERE (d.vehicle.id = :vehicleId) AND (p.timestamp BETWEEN :curentDate AND :date)");

Как я могу сказать JPQL отфильтровать данные, которые он мне предоставляет, между двумя датами, но с интервалом в 4 минуты?.

Надеюсь понятно. Спасибо за ваше предложение.

1 ответ

Ваше требование: разница между двумя указанными датами должна составлять не менее четырех минут. Согласно спецификации JPA 1.0, выражение сравнения между датами должно следовать этому шаблону

datetime_expression сравнение_operator datetime_expression

Где Оператор сравнения может быть =,>,> =, <, <=, <>. Что вы можете сделать, это

Возьмите разницу между указанными датами следующим образом

Timestamp dateA ...
Timestamp dateB ...

Timestamp difference = new Timestamp(Math.abs(dateA.getTime() - dateB.getTime()));

И создайте метку времени, которая представляет 4 минуты

Timestamp fourMinutes = new Timestamp(0, 0, 0, 0, 4, 0, 0);

Теперь ваш запрос должен выглядеть так

where :difference >= :fourMinutes
Другие вопросы по тегам