Отредактировано: добавлена информация о том, что date1 является отметкой времени
Мне нужно увеличить дату, но интервал основан на разнице между датой, которую я хочу увеличить, и другой датой в таблице, но с сохранением даты1 часа и минут. Например:
Create myTable
( id serial,
date1 timestamp,
date2 date
)
Итак, если date1 = '2020-01-10 10: 30: 00' и date2 = '2020-03-08' Мне нужно, чтобы date1 был '2020-03-08 10 : 30: 00 '
Update myTable set date1 = date1+interval (date2-date1)
Синтаксис требует одинарных кавычек между значением (то есть: дата + интервал «30 дней»). Как обернуть результат из (date2-date1) в одинарные кавычки? Я безуспешно пробовал много способов:
Update myTable set date1 = date1+interval chr(39)||cast((date2-date1) as varchar)|| ' days'|| chr(39)
Update myTable set date1 = date1+interval $$||cast((date2-date1) as varchar)|| ' days'||$$
Update myTable set date1 = date1+interval ''||cast((date2-date1) as varchar)|| ' days'||''
Как мне сделать это правильно?