Postgresql 错误:运算符不存在:没有时区的时间戳+;整数

Postgresql 错误:运算符不存在:没有时区的时间戳+;整数,postgresql,postgresql-10,Postgresql,Postgresql 10,我在postgresql函数中添加了n个月(2),但在执行时显示错误“error:operator不存在:timestamp无时区+整数” 提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 查询:选择pi_日期+第n个月| |'月'::间隔 DECLARE beginMonth timestamp; pi_date timestamp := to_timestamp('14-Jan-2016 01:50 AM,'DD-MON-YYYY HH:MI AM); &g

我在postgresql函数中添加了n个月(2),但在执行时显示错误“error:operator不存在:timestamp无时区+整数” 提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。 查询:选择pi_日期+第n个月| |'月'::间隔

DECLARE
beginMonth  timestamp;
pi_date     timestamp := to_timestamp('14-Jan-2016 01:50 AM,'DD-MON-YYYY HH:MI AM);
> beginMonth := pi_date  +   nthMonth || ' month ' :: INTERVAL;
很明显,“+”比“| |”(正如它告诉你的那样)绑定得更紧

你想要的是:

pi_date+(第n个月| |'个月'::间隔)

或者,也许更清楚一点:

pi_日期+(n个月*间隔“1个月”)

很明显,“+”比“| |”(正如它告诉你的)绑定得更紧

你想要的是:

pi_date+(第n个月| |'个月'::间隔)

或者,也许更清楚一点:

pi_日期+(n个月*间隔“1个月”)