0

我需要将带有 TO_DATE 函数的 WHERE 语句从 Oracle 转换为 Informix 10。不幸的是,我无法直接访问 Informix 实例,并且只能通过作业管理 GUI 执行 SQL,这使得通过尝试和错误进行测试相当不方便。

无论如何,在 Oracle 中它看起来像这样(出于兼容性原因,没有 NVL2 功能):

select * from mytable
where date_column >= (CASE WHEN date_column is not null THEN to_date('13.02.2014 23:00:00', 'dd.mm.yyyy hh24:mi:ss') ELSE to_date('01.04.2010', 'dd.mm.yyyy') END);

我在这里查看了 Informix 中的日期表示法:http: //publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp ?topic=/com.ibm.gls.doc/glsug62.htm

并想出了这个:

select * from mytable
where date_column >= (CASE WHEN date_column is not null THEN to_date('13.02.2014 23:00:00', '%d.%m.%Y %R:%S') ELSE to_date('01.04.2010', '%d.%m.%Y') END);

对我来说,这看起来是正确的,但 Informix 服务器对此有另一种看法。

谁能给我一个提示?

4

1 回答 1

0

该死的,我忘记了 Informix 语句中的结束撇号,在上面更正了它 - 现在它可以工作了(self-facepalm)。

于 2014-05-23T12:29:41.250 回答