【发布时间】:2017-07-16 07:32:23
【问题描述】:
CREATE OR REPLACE FUNCTION myfunction(userid BIGINT)
RETURNS REAL
SECURITY DEFINER
LANGUAGE plpgsql
AS $$
DECLARE
------------------------Fetch all Active Games for a user and add it to one cursor--------------------------------------
PersonGames NO SCROLL CURSOR FOR select timezonename from user where id=userid;
BEGIN
OPEN PersonGames;
LOOP
FETCH PersonGames INTO PersonGame;
IF NOT found
THEN
EXIT;
END IF;
SET TIMEZONE=PersonGame.timezonename;
-- execute 'set TIMEZONE=$1' using PersonGame.timezonename;
end loop;
END;
$$;
我收到参数“TimeZone”的错误无效值:“timezonename”
即使我尝试使用 PersonGame.timezonename 更改代码执行 'set TIMEZONE=$1';
但这也行不通。
我想在我的函数中设置时区。
非常感谢任何帮助。
谢谢
【问题讨论】:
-
1.为什么要更改 Postgres DB 时区?此设置适用于整个数据库。 2、语法为
SET TIME ZONE value(see documentation)。 -
我有一个要求,这需要用户明智。我已经尝试过但无法正常工作。
-
@KristoMägi:通过
set更改时区不适用于“整个数据库” - 仅适用于当前会话。
标签: postgresql function stored-procedures plpgsql