Напиши функцию, которая обновляет version_actual_period_start с типом timestamp. Запись искать с условием version_actual_period_end > current_timestamp . нужную дату указывает пользователь, а у предыдущей, по времени актуальности записи, обновляется version_actual_period_end-становится такая же , но на 1 секунду меньше. Входные параметры время, наименование таблицы в БД, массив version_meta_id. Plpgsql
UPDATE :table SET version_actual_period_end=date_trunc('second',:date)-interval '1 second' WHERE version_actual_period_end > current_timestamp AND version_meta_id = ANY(:id);