在PostgreSQL中将日期添加到日期会显示语法错误

Haj*_*aji 19 sql postgresql user-interface

我正在使用Postgres 9.0版本.我想在日期中添加几个月来计算新日期并在表格中更新.这里添加的月数将是整数变量.我的代码如下:

declare numberofmonths smallint = 5;
update salereg1 set expdate = current_date + interval cast(numberofmonths as text) month;
Run Code Online (Sandbox Code Playgroud)

上面的代码显示了转换时的语法错误.我不知道如何将numberofmonths变量指定为文本..任何人都可以帮助我.我犯的错是什么..

Igo*_*nko 48

尝试类似的东西:

update salereg1 
set expdate = current_date + interval '1 month' * numberofmonths;
Run Code Online (Sandbox Code Playgroud)


Rom*_*kar 10

像这样的东西:

update salereg1 set
    expdate = current_date + (numberofmonths::text || ' month')::interval;
Run Code Online (Sandbox Code Playgroud)

sql fiddle example


小智 5

从 Postgres 9.4 开始,您还可以使用方便的功能make_interval

update salereg1 
  set expdate = current_date + make_interval(months => numberofmonths);
Run Code Online (Sandbox Code Playgroud)