我需要将带有TO_DATE函数的WHERE语句从Oracle转换为Informix 10.不幸的是,我无法直接访问Informix实例,只能通过作业管理GUI执行SQL,这样可以通过try-and进行测试 - 非常不方便。
无论如何,在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服务器对此有另一种看法。
有人能给我一个提示吗?
答案 0 :(得分:0)
该死的,我在Informix声明中忘记了一个关闭的叛逆者,在上面纠正了它 - 现在它起作用了(self-facepalm)。