jpa比较保存数据的日期(毫秒)

时间:2013-04-14 16:41:21

标签: java java-ee jpa

我使用的是外部数据库,我无法在查询中使用特定于数据库的函数。

startdate保存为bigint,为UNIX timestamp(自纪元以来毫秒)。

所以在我的查询中我忽略毫秒。

WHERE ma.conversation.room IS NULL AND (ma.conversation.startdate >= :startDate AND ma.conversation.startdate <= :endDate)

我的方法设置参数

.setParameter("startDate", startDate.getTime())
.setParameter("endDate", endDate.getTime())

我知道这是一个非常糟糕的主意,但我无法更改数据库。

我不知道为什么我的测试结果有些奇怪?例如,这是我的NamedQuery参数:

QUERY StartDate:134 904 315 5000,endDate:134 904 902 2000

我打印出我的列表结果,我得到了:

查询结果:startdate = 2013-10-01 01:50:23,startdate time = 138 058 502 3863 ......

为什么这个查询会给我带来这个结果?

  1. 虽然138 058 502 3863&gt; = 134 904 315 5000(true)
  2. 但是138 058 502 3863 =&lt; 134 904 902 2000(不是真的!
  3. 问题

    使用>==<运算符是个好主意吗?

0 个答案:

没有答案