MS SQL到Informix 11-通过转换DateTime组



我正在尝试将存储过程从Microsoft SQL Server 2000移动到Informix 11.原始SP包含一个最终选择语句,其中包含一个包括转换的DateTime的组:

group by convert(varchar(8), c.startDateTime, 1)

当我将其转换为Informix语法时,我会在运行时出现语法错误:

GROUP BY (c.startDateTime::DATETIME YEAR TO DAY)::VARCHAR(10)

任何人都可以向我指出,如果可能的话,这可以在Informix中完成?如果这是不可能的,我怀疑这是您通常如何在整体查询中处理的?

我认为您需要从中转换:

SELECT a, b, c 
FROM  ...
GROUP BY (c.startDateTime::DATETIME YEAR TO DAY)::VARCHAR(10) ;

类似:

SELECT a, b, c, 
    (c.startDateTime::DATETIME YEAR TO DAY)::VARCHAR(10) AS d
FROM  ...
GROUP BY 4 ;        --- meaning: the 4th column in the SELECT clause

在Informix中,通常不需要将DateTime字段转换为字符字符串来操纵它们。而是使用扩展功能。

示例,如果将c.StartDateTime定义为日期时间到第二年2012-10-28 23:00:00您只需要日期部分,使用扩展(c.StartDateTime,每年)。这将返回2012-10-28。

您是否正在转换为Informix语法,以将日期转换为mm/dd/yyyy(mssql style = 1)as

TO_CHAR(c.StartDateTime,"%m/%d/%iY")

???

最新更新