Как уже упоминалось в комментариях, вам нужно EVENT TRIGGER
.Функция триггера может ограничивать работу в зависимости от времени.Я дал вам только образец.При необходимости вы можете использовать правильное условие.
CREATE OR REPLACE FUNCTION pr_create_obj_func()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
BEGIN
if ( extract( hour from clock_timestamp() ) between 0 and 6 ) then
raise EXCEPTION '% : This operation cannot be performed at night',tg_tag;
end if;
END;
$$;
Триггер события должен быть определен как
CREATE EVENT TRIGGER
tg_no_night_create ON ddl_command_end
WHEN TAG in ('CREATE TABLE')
EXECUTE PROCEDURE pr_create_obj_func();
Различные теги, которые могут быть указаны в предложении IN
дляфактические события, для которых должен запускаться триггер, перечислены здесь