将MSSQL转换为Informix

时间:2014-04-23 14:08:29

标签: sql sql-server informix

我需要将针对MSSQL-Server的SQL语句转换为Informix的等价语句。不幸的是,我无法访问其中一个,也没有访问其他DBMS,所以我无法对其进行测试。

MS-SQL语句如下:

SET DATEFORMAT ymd;
SELECT 
     ATTRIBUTE1,
     ATTRIBUTE2,
     TIMESTAMP1,
     TIMESTAMP2,
     ATTRIBUTE3
FROM MY_TABLE
WHERE convert(DATETIME,TIMESTAMP1,104) >= ISNULL(convert(DATETIME,TIMESTAMP2,104), convert(DATETIME,'11.11.1900',104));

有人可以帮帮我吗?

非常感谢你。

1 个答案:

答案 0 :(得分:2)

首先,您不需要将datetime转换为字符串。数据库很好地比较了日期时间值。转换为文本将使您的查询更慢,并且不清楚它是否能够使用索引。

在Informix中,datetime(我使用类型datetime year to second)可以作为字符串文字。

在Informix中没有ISNULL()函数,但它们具有NVL()函数。

所以我会将WHERE条件写为:

WHERE timestamp1 > NVL(timestamp2, '1900-11-11 00:00:00');