Sql Postgres向interval语句添加参数
我试图在postgres函数interval语句中添加一个参数。不知道如何添加它 具体如下:Sql Postgres向interval语句添加参数,sql,postgresql,datetime,sql-function,Sql,Postgresql,Datetime,Sql Function,我试图在postgres函数interval语句中添加一个参数。不知道如何添加它 具体如下: CREATE OR REPLACE FUNCTION test_date(number integer) RETURNS table (date_value date) AS $body$ BEGIN RETURN QUERY (select (now() + interval '$1 days') ::date as column_value); END; $body$ language plpgsq
CREATE OR REPLACE FUNCTION test_date(number integer)
RETURNS table (date_value date)
AS
$body$
BEGIN
RETURN QUERY (select (now() + interval '$1 days') ::date as column_value);
END;
$body$
language plpgsql;
我想你想要:
RETURN QUERY select (now() + number * interval '1 day') ::date as column_value;
表达式number*interval'1 day')
提供了number
天的间隔
您还可以使用make\u interval()
:
您可以直接向
日期
值添加一个整数,这将增加天数。因此,如果您使用当前日期,则不需要强制转换
CREATE OR REPLACE FUNCTION test_date(number integer)
RETURNS table (date_value date)
AS
$body$
BEGIN
RETURN QUERY select current_date + number;
END;
$body$
language plpgsql;
但我不明白为什么要对单个值使用集合返回函数。在这种情况下,标量SQL函数会更好:
CREATE OR REPLACE FUNCTION test_date(number integer)
RETURNS date
AS
$body$
select current_date + number;
$body$
language sql
stable;
CREATE OR REPLACE FUNCTION test_date(number integer)
RETURNS date
AS
$body$
select current_date + number;
$body$
language sql
stable;