On 1/11/24 11:04, Alban Hertroys wrote:
I didn’t succeed in calling SET LOCAL TIMEZONE from within the function. Could be I missed something, then Google (stackoverflow) pointed me to set_config().
CREATE OR REPLACE FUNCTION public.tz_fnc() RETURNS void LANGUAGE plpgsql AS $function$ BEGIN SET LOCAL TIMEZONE = 'UTC'; RAISE NOTICE '%', to_char(now(), 'OF'); END; $function$ test=# begin ; BEGIN test=*# select public.tz_fnc(); NOTICE: +00 tz_fnc -------- (1 row) test=*# show timezone; TimeZone ---------- UTC (1 row) test=*# commit; COMMIT test=# show timezone; TimeZone --------------------- America/Los_Angeles (1 row)
I did manage to apply it to the second function header, which I think behaves such that the time zone change stays within function scope. Right now I’m not 100% sure that I verified that. More to check tomorrow. Frankly, I do hope that you’re right here, that would make my work easier. Alban Hertroys -- If you can't see the forest for the trees, cut the trees and you'll find there is no forest.
-- Adrian Klaver adrian.klaver@xxxxxxxxxxx