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