当前位置:  开发笔记 > 数据库 > 正文

运算符不存在:interval> integer

如何解决《运算符不存在:interval>integer》经验,为你挑选了1个好方法。

我有一个查询适用于Postgresql 7.4但不适用于具有相同数据库的Postgresql 8.3.

查询:

SELECT * FROM login_session WHERE (now()-modified) > timeout;

获取以下错误:

ERROR:  operator does not exist: interval > integer
LINE 1: ...ELECT * FROM login_session WHERE (now()-modified) > timeout ...
                                                             ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

modified是a timestamp并且timeoutinteger.

我需要在服务器上更改一些设置吗?

我正在新服务器(ubuntu)上为客户端安装应用程序,因此我无法在应用程序中更改查询.



1> Milen A. Rad..:

7.4和8.3之间有很多变化.一些最激烈的是删除一些自动演员阵容.

我想"超时"是几秒钟?如果是这样,您可以将查询更改为:

SELECT
    *
FROM
    login_session
WHERE
    (CURRENT_TIMESTAMP - modified) > (timeout * '1 sec'::interval);

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有