这就是我现在所拥有的(它不起作用):
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。
答案 0 :(得分:1)
显然,您已发现将INTERVAL
值difficulty转换为INTEGER
,但我认为代码中的问题是语法问题。保留字START
和END
的使用也可能使事情变得复杂。
试试这个:
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;
我使用函数作为谓词进行了测试,看起来效果很好。