我有一个查询适用于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
并且timeout
是integer
.
我需要在服务器上更改一些设置吗?
我正在新服务器(ubuntu)上为客户端安装应用程序,因此我无法在应用程序中更改查询.
7.4和8.3之间有很多变化.一些最激烈的是删除一些自动演员阵容.
我想"超时"是几秒钟?如果是这样,您可以将查询更改为:
SELECT * FROM login_session WHERE (CURRENT_TIMESTAMP - modified) > (timeout * '1 sec'::interval);