java HQL(hibernate)时间戳范围匹配
我需要编写一个查询来获取一个时间范围内的对象,当前该查询如下所示:
Timestamp from = ...
Timestamp to = ...
getHibernateTemplate().find("from " + Person.class.getName() + " ml where ml.lastModifiedOn>="+from.toString()+" and m1.lastModifiedOn<=" + to.toString());
然而,这显然不起作用。如何将时间戳格式化为查询可以接受的格式
组织。springframework。奥姆。冬眠3。HibernateQueryException:意外标记:第1行第123列附近的16[来自Person ml,其中ml.lastModifiedOn>;=2010-02-12 16:00:21.292和m1.lastModifiedOn
# 1 楼答案
只要在比较中传递一个
long
(from.getTime()
),如果它在数据库中表示为long否则,您可以使用以下函数:
second(...), minute(...), hour(...), day(...), month(...), and year(...)
# 2 楼答案
如果您想在之间查询某些内容,可以执行以下操作:
您可能需要将
TemporalType.DATE
更改为您正在使用的任何内容# 3 楼答案
像这样的怎么样
# 4 楼答案
当前查询中缺少单引号。以下方面应起作用:
请注意,我不知道为什么不将
Date
实例传递给以下查询:你在这里使用
java.sql.Timestamp
吗?如果是,你不应该