Как обновить дату столбца postgres на несколько дней вперед

#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. Да, вы правы… Я слишком все усложнил 🙁