我需要将带有 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 服务器对此有另一种看法。
谁能给我一个提示?