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

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

4 голосов
/ 22 марта 2011

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

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 отфильтровать данные, которые он дает мне Данные между 2 датами, но синтервал времени 4 минуты?.

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

1 Ответ

1 голос
/ 23 марта 2011

Ваше требование: разница между двумя указанными датами должна составлять не менее четыре минуты.Согласно спецификации 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...