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