Hello! Is there any method to freeze localtimestamp and other time function value. Say after freezing on some value sequential calls to these functions give you the same value over and over again. This is useful primarily for testing.
In oracle there is alter system set fixed_date command. Have Postgres this functionality?
It is not possible in Postgres
PostgreSQL solution is using working time as function parameter. This parameter can have default value.
postgres=# select test('2016-03-10 10:00:00');
NOTICE: current time is: 2016-03-10 10:00:00
postgres=# select test(); NOTICE: current time is: 2016-04-12 13:47:21.644488
postgres=# select test(); NOTICE: current time is: 2016-04-12 13:47:22.633711
CREATE OR REPLACE FUNCTION public.test(t timestamp without time zone DEFAULT now()) RETURNS void LANGUAGE plpgsql AS $function$ BEGIN RAISE NOTICE 'current time is: %', t; END; $function$