我使用的是外部数据库,我无法在查询中使用特定于数据库的函数。
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 ......
为什么这个查询会给我带来这个结果?
问题
使用>=
和=<
运算符是个好主意吗?