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;
$$;
我收到錯誤無效值的參數「時區」:「TIMEZONENAME」如何設置時區Postgres的函數內部
即使我試圖改變代碼執行「設置TIMEZONE = $ 1」使用PersonGame.timezonename ;
但這也行不通。
我想在我的函數中設置時區。
任何幫助真的很感激。
感謝
1.爲什麼要更改Postgres DB時區?此設置適用於整個數據庫。 2.語法爲'SET TIME ZONE value'([參見文檔](https://www.postgresql.org/docs/9.1/static/sql-set.html#AEN75747))。 –
我有一個要求,這需要用戶明智。我已經嘗試過,但沒有工作。 – deadpool
@KristoMägi:通過'set'更改時區並不適用於「整個數據庫」 - 僅適用於當前會話。 –