Есть ли эквивалент этой команды T-SQL в PostgreSQL?
select dateadd(hh,duration_in_hours,start_date) as end_date
Я нашел только ключевое слово interval с последующей строкой, но эта ужасная конструкция возвращает синтаксическую ошибку:
select start_date + interval cast(duration_in_hours as varchar) || ' hours'
Он допускает только строковую константу после ключевого слова «интервал». Я уверен, что в pgsql должна быть какая-то подобная функция, но я не могу ее найти.
INTERVAL
— это тип, поэтому вы можете привести строку как таковую. Ваше утверждение можно было бы переписать какselect start_date + cast(duration_in_hours || ' hours' as INTERVAL)
; Я разозлился и завернул все это в простую функцию:create or replace function dateadd(date,float,char) returns date as $$ begin return $1 + cast($2||' '||$3 as interval); end; $$ language plpgsql;
. Извините за интервал. - person Manngo   schedule 13.03.2016