Java jpa将日期保存为长时的比较日期(毫秒)

Java jpa将日期保存为长时的比较日期(毫秒),java,jakarta-ee,jpa,Java,Jakarta Ee,Jpa,我使用的是外部数据库,无法在查询中使用特定于数据库的函数 startdate保存为bigint,并且是(自历元起的毫秒) 所以在我的查询中我忽略了毫秒 WHERE ma.conversation.room IS NULL AND (ma.conversation.startdate >= :startDate AND ma.conversation.startdate <= :endDate) 我知道这是一个非常糟糕的主意,但我无法更改数据库 我不知道为什么我的测试结果很奇怪?例如

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

startdate
保存为
bigint
,并且是(自历元起的毫秒)

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

WHERE ma.conversation.room IS NULL AND (ma.conversation.startdate >= :startDate AND ma.conversation.startdate <= :endDate)
我知道这是一个非常糟糕的主意,但我无法更改数据库

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

查询开始日期:134 904 315 5000,结束日期:134 904 902 2000

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

查询结果:起始日期=2013-10-01 01:50:23,起始日期时间=138 058 502 3863

为什么那个查询会给我带来这样的结果

  • 虽然138 058 502 3863>=134 904 315 5000(真)
  • 但是1380585023863=<1349049022000(不是真的!
  • 问题


    使用
    =
    =为什么这是一个坏主意?我不确定OP是否希望忽略查询中的毫秒,或者已经是原始短语:“在我的查询中,我忽略毫秒”。我认为是后者。我不明白上面的查询是如何忽略毫秒的。@bmorris591当我将参数设置为startDate和endDate时,该日期已将毫秒设置为000。。。这就是我的意思请看我编辑我的问题
    
    .setParameter("startDate", startDate.getTime())
    .setParameter("endDate", endDate.getTime())