#postgresql #postgres-12
Вопрос:
Я использую postgres в качестве своей базы данных, и у меня есть таблица, в которой есть столбец даты. Текущее значение в этом столбце-2021-04-1 17:19:08
Я хочу обновить значение этого столбца и перенести дату на 20 (или любое другое количество дней) вперед, чтобы новое значение было 2021-04-20 17:19:08
причина, по которой я не делаю это вручную, заключается в том, что у меня слишком много строк для продвижения вперед, поэтому мне нужен запрос для этого, и мне нужна свобода выбора количества дней вперед
Заранее спасибо
Ответ №1:
Вы можете добавить дни, используя INTERVAL
—
SELECT CURRENT_DATE INTERVAL '20 days';
Комментарии:
1. Спасибо, что помогло!
Ответ №2:
С помощью Нихила Патила мне удалось создать следующий запрос:
select 'UPDATE itpserver.managed_incidents SET trigger_time = ''' || trigger_time || ''' where id = ' || id::text || ';'
from (
select id, trigger_time INTERVAL '120 days' trigger_time
FROM itpserver.managed_incidents
) a
where 1=1
group by id,trigger_time
order by id
этот запрос создал все запросы на обновление, которые мне были нужны для обновления всех строк в моей таблице. (trigger_time-это столбец даты).
после того, как он создал все необходимые мне запросы на обновление, я запустил их все одновременно с sql-скриптом
Комментарии:
1. Нет необходимости генерировать эти запросы. Вы можете напрямую обновить таблицу, используя
update itpserver.managed_incidents set trigger_time = trigger_time interval '120 days'
direct.2. Да, вы правы… Я слишком все усложнил 🙁