如何在JavaJDBCHibernate中使用::date? PG管理员

如何在JavaJDBCHibernate中使用::date? PG管理员,java,postgresql,hibernate,timestamp,spring-jdbc,Java,Postgresql,Hibernate,Timestamp,Spring Jdbc,我在PGadmin中查询了SQL编辑器: select * from list_taxi where last_update::date = now()::date 它显示了一个很好的结果,它显示了今天在线/更新的出租车。 (我使用::date)。 然后,我使用hibernate将查询实现到Java中 Java-jdbchbernate 我有一个时间戳变量 Timestamp nowTime = new Timestamp(System.currentTimeMillis() );

我在PGadmin中查询了SQL编辑器:

select * from list_taxi where last_update::date = now()::date     
它显示了一个很好的结果,它显示了今天在线/更新的出租车。 (我使用::date)。 然后,我使用hibernate将查询实现到Java中

Java-jdbchbernate 我有一个时间戳变量

Timestamp nowTime = new Timestamp(System.currentTimeMillis() );
我有一个连接到Postgresql(JDBC-Hibernate)的Java DAO查询


如何解决这个问题?

作为一种解决方法,您可以这样做

WHERE lastUpdate > :startOfTodayTimestamp  -- set this to :00:00:00 today

如果您有来自未来的日期,或者希望不仅仅是今天,还需要添加一个上限。

尝试em.createQuery(“从ListTaxi…”)而不是em.createQuery(“从ListTaxi…)选择lt。选择*部分,它是隐式的汉克斯,我做了。但我仍然得到了错误。我认为问题在于在Java中使用::date。。(java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记::靠近第1行第65列[来自model.ListTaxi lt,其中lt.lastUpdate::date=lt.lastUpdate::date])尝试em.createQuery(“来自ListTaxi lt,其中lt.lastUpdate=:nowTime”).getResultList();@stackUser44:仅当时间戳完全匹配时才匹配,而不仅仅是“today”em.createQuery(“从ListTaxi lt order by lt.lastUpdate desc”).setFirstResult(0.setMaxResults(1.getResultList();我在Stackoverflow上搜索了一点,但找不到一个不使用本机SQL的简洁解决方案。这种变通方法的好处还在于它非常索引友好(某些转换可能不是这样);今天。设定时间(0);今天。设定分钟(0);今天。设置秒(0);Timestamp startodaytimstamp=新的时间戳(today.getTime())好主意!!我用你的想法解决了这个问题,非常感谢师父
java.lang.IllegalArgumentException: 
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: 
: near line 1, column 75 [SELECT lt FROM model.ListTaxi lt WHERE 
lt.lastUpdate::date = lt.lastUpdate::date]
WHERE lastUpdate > :startOfTodayTimestamp  -- set this to :00:00:00 today