JPQL查询日期与间隔

时间:2011-03-22 10:49:02

标签: java sql hibernate jpa jpql

我正在使用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 个答案:

答案 0 :(得分:1)

您的要求:两个提供日期之间的差异应至少四分钟。根据JPA 1.0规范,日期之间的比较表达必须遵循这种模式

  

datetime_expression comparison_operator datetime_expression

compare_operator可以是=,>,> =,<,< =,<>。你能做的是

按照以下方式获取您提供的日期之间的差异

Timestamp dateA ...
Timestamp dateB ...

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

创建一个代表4分钟的Timestamp

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

现在,您的查询应该是

where :difference >= :fourMinutes