我有一个视图,我将DATETIME转换为DATE,所以我可以忽略时间部分。
CAST(av.date as DATE),
我尝试使用代码在特定日期查询此视图:
s.date BETWEEN :start AND :end
要设置这些参数,我会收到日期并截断它,请使用以下代码:
DateTime beginDate = new DateTime(bgn);
DateTime endDate = new DateTime(end);
Date startDt = DateUtils.truncate(beginDate.toDate(), Calendar.DATE);
Date endDt = DateUtils.truncate(endDate.toDate(), Calendar.DATE);
问题是当它到达JDBC时,我收到以下错误:
WARN [JDBCExceptionReporter] SQL错误:241,SQLState:22007
ERROR [JDBCExceptionReporter]从字符串转换日期和/或时间时转换失败。
使用以下代码将日期设置为查询:
Query query = entityManager.createNamedQuery(name);
query.setParameter("start", startDt);
任何人都有任何关于可能发生的事情的线索? 我发现这个link有关此错误,但它根本没有帮助我。 我100%迷失了。
答案 0 :(得分:0)
我不知道您将日期传递给查询的方式,但您可以将日期转换为字符串,然后将其传递给查询:
DateTime beginDate = new DateTime(bgn);
DateTime endDate = new DateTime(end);
DateFormat df = new SimpleDateFormat("yyyyMMdd");
String startDt = df.format(DateUtils.truncate(beginDate.toDate(), Calendar.DATE));
String endDt = df.format(DateUtils.truncate(endDate.toDate(), Calendar.DATE));
在不知道您的确切代码的情况下,这有点猜测。