我所处的位置我需要能够在两个日期之间查询数据库(java.util.Date),但是我不能使用将日期绑定到查询中的参数的标准方法。
我正在客户端代码中动态生成过滤器(使用GWT)附加到我们的" get"用于我们所有数据请求的方法。我正在努力创造一个简单的"其中"这样的条款:
where groupCheckInDate >= 2014-10-01 00:00:00 AND groupCheckInDate <= 2014-10-31 00:00:00
我已经在我能想到的任何地方进行了搜索,并且只能找到我的日期字符串格式错误的线索。我尝试使用 yyyy-MM-dd HH:mm:ss 作为我的格式字符串,但这不起作用。我收到以下错误:
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 00
near line 1, column 84 [from Receipts where date >=
2014-10-01 00:00:00 AND date <= 2014-10-31 00:00:00 order by id]
答案 0 :(得分:0)
如果你真的必须使用内嵌字符串,你应该逃避它们。例如,这适用于SQL Server:
where groupCheckInDate >= '2014-10-01 00:00:00'
AND groupCheckInDate <= '2014-10-31 00:00:00'
关键是hql解析器会将''
之间的内容视为单个语句。没有它,每个数字都会被评估......导致异常