Informix中的函数返回两个Datetimes之间的分钟数

时间:2013-08-15 15:26:12

标签: sql informix

这就是我现在所拥有的(它不起作用):

CREATE FUNCTION DIFFERENCE_IN_MINUTES(start DATETIME, end DATETIME)
RETURNING ((start - end)::interval minute(8) to minute)::char(10)::int8;

我希望能够像这样使用它:where DIFFERENCE_IN_MINUTES(startTime, endTime) > 100。实现这一目标的正确方法是什么?我正在使用Informix 11.70。

1 个答案:

答案 0 :(得分:1)

显然,您已发现将INTERVALdifficulty转换为INTEGER,但我认为代码中的问题是语法问题。保留字STARTEND的使用也可能使事情变得复杂。

试试这个:

CREATE FUNCTION DIFFERENCE_IN_MINUTES(a DATETIME YEAR TO SECOND,
                                      b DATETIME YEAR TO SECOND)
        RETURNING INT8;
    RETURN ((b - a)::INTERVAL MINUTE(8) TO MINUTE)::CHAR(10)::INT8;
END FUNCTION;

我使用函数作为谓词进行了测试,看起来效果很好。