【发布时间】:2014-10-27 18:42:28
【问题描述】:
我在尝试在针对 Informix (11.50) 数据库的查询中使用 Date 参数时遇到了语法错误。我正在使用这个查询:
select
distinct SOMEVARIABLE
from
SOMETABLE
where SOMEDATETIME > datetime (?) year to minute
and SOMEDATETIME < datetime (2014-10-30) year to day
查询参数类型设置为日期,报表参数设置为日期时间,格式为短日期。
我得到的错误是:java.sql.SQLException: Non-numeric character in datetime or interval。
如果我注释掉 where 子句,我可以让 BIRT 向我显示它在错误中插入的值:2014-10-27 00:00。
据我所知,这是 Informix 日期时间文字的正确格式。我开始失去我的想法......
编辑:
看起来这可能是我对 Informix 的缺乏经验和我的环境的结合。我正在用 SQuirrel 制定和测试我的查询,使用与 BIRT 相同的 JDBC 配置。在 SQuirrel 中,如果我不使用长日期时间文字格式 datetime (YYYY-MM-DD) 年复一年,我会遇到语法错误。
Michał 的回答为我指明了正确的方向。在 BIRT 的查询中将文字缩减为 YYYY-MM-DD 效果很好。
我猜这与 SQuirrel 如何设置它与数据库的会话有关,但足以报告是其邪恶。
【问题讨论】: