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
[email protected]