我正遇到一段语法错误,试图在对Informix(11.50)数据库的查询中使用Date参数。我使用这个查询:BIRT Informix查询的日期参数
select
distinct SOMEVARIABLE
from
SOMETABLE
where SOMEDATETIME > datetime (?) year to minute
and SOMEDATETIME < datetime (2014-10-30) year to day
查询参数类型设置为日期,报告放慢参数被设置为DateTime,格式为短日期。
我得到的错误是:java.sql.SQLException:日期时间或间隔中的非数字字符。
如果我注释掉where子句,我可以让BIRT向我显示它在插入错误的值:2014-10-27 00:00。
据我所知,这是Informix日期时间字面值的正确格式。我开始失去什么离开我这里想到的......
编辑:
它看起来像这可能是我缺乏经验与Informix和我的环境的组合。我正在用SQuirrel编写和测试我的查询,使用与BIRT相同的JDBC配置。在SQuirrel中,如果我不使用长日期时间文字格式datetime(YYYY-MM-DD),我会收到语法错误。
Michał的回答指出了我的正确方向。在BIRT中的查询中将字面缩减为仅仅YYYY-MM-DD工作得很好。
我猜这与SQuirrel如何设置它与数据库的会话有关,但足以报告它是邪恶的。