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