我有一个视图,在这里我抛出了一个日期时间,所以我可以忽略时间部分。
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时,我会得到以下错误:
警告JDBCExceptionReporter SQL错误: 241,SQLState: 22007 从字符串转换日期和/或时间时,错误JDBCExceptionReporter转换失败。
使用以下代码将日期设置为查询:
Query query = entityManager.createNamedQuery(name);
query.setParameter("start", startDt);
有人知道会发生什么吗?我找到了这个关于这个错误的链接,但是它对我一点帮助都没有。我完全迷上了这件事。
发布于 2013-06-18 19:28:05
我不知道将日期传递给查询的方式,但您可以将日期转换为字符串,然后将其传递给查询:
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));
不知道您的确切代码,这是一点猜测。
https://stackoverflow.com/questions/17176774
复制相似问题