ERROR: operator does not exist: timestamp without time zone + integer

ERROR: operator does not exist: timestamp without time zone + integer

我正在我的 postgresql 函数中添加第 nthmonth (2),但在执行时它显示错误 "ERROR: operator does not exist: timestamp without time zone + integer" 提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。 查询:SELECT pi_date + nthMonth || '月' :: INTERVAL

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 + (nthMonth || ' months'::interval)

或者,也许更清楚一点:

pi_date + (nthMonth * interval '1 month')