Postgresql过去一年的当前日期时间

时间:2016-05-23 12:20:17

标签: sql postgresql

postgresql上是否有一个函数可以让我获得过去一年的当前日期时间或过去几年的x个数字? 我知道我可以这样做select now() - interval '1 year';但是在函数中如何将年数放在变量中

x := '2 year'
Is it possible to do this select  now() - interval x;

我试过但它给了我错误

2 个答案:

答案 0 :(得分:3)

如果你想使用变量,你可以这样做:

CREATE OR REPLACE FUNCTION func(input integer)
  RETURNS TIMESTAMP WITHOUT TIME ZONE  AS
  $BODY$ 
  declare 
        result TIMESTAMP WITHOUT TIME ZONE; 
  begin
        select  now() - (input  || ' years')::interval into result;
        return result;
  end;
  $BODY$
  LANGUAGE plpgsql VOLATILE

答案 1 :(得分:1)

对于该日期,您将使用:

select current_date - interval '1 year'

日期/时间:

select now() - interval '1 year'