Если нам нужно прибавить к дате временной промежуток, мы можем использовать оператор INTERVAL
select '2021-02-16'::date + interval '5 day' as result
Результат: 2021-02-21
.
Вместо DAY
, мы можем написать другую единицу времени, например, YEAR
или MONTH
.
Если мы хотим задавать количество времени гибким образом, например, с помощью колонки, мы можем сделать так: давайте представим, что нам необходимо прибавить к дате '2021-02-16' колонку с динамическими целочисленными значениями. Мы можем это сделать, преобразовав эту колонку в интервал. Для этого нужно умножить целочисленное значение столбца на интервал, равный 1, и прописать тип временного отрезка (DAY, MONTH, YEAR и т.д.).
Представим, что значение в колонке равно 12:
select '2021-02-16'::date + 12 * interval '1 day'
Результат: 2021-02-28 00:00
.
Таким образом, для колонки число 12 будет динамическим в зависимости от значения в строке. И мы в итоге прибавим ко времени динамическое значение столбца с нужным временным отрезком.