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.kla...@aklaver.com



Reply via email to