SQL错误:241,SQLState:22007

时间:2013-06-18 18:59:36

标签: sql hibernate date datetime time

我有一个视图,我将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%迷失了。

1 个答案:

答案 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));

在不知道您的确切代码的情况下,这有点猜测。