如何解决Postgres将参数添加到间隔语句
我正在尝试在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 plpgsql;
解决方法
我想你想要
RETURN QUERY select (now() + number * interval '1 day') ::date as column_value;
表达式number * interval '1 day')
的间隔为number
天。
您还可以使用make_interval()
:
RETURN QUERY select (now() + make_interval(days := number))::date as column_value;
,
您可以直接将整数添加到date
值中,这将增加天数。因此,如果您使用current_date
,则无需强制转换。
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;
但是我不明白为什么您对单个值使用set-returning函数。在这种情况下,使用标量SQL函数会更好:
CREATE OR REPLACE FUNCTION test_date(number integer)
RETURNS date
AS
$body$
select current_date + number;
$body$
language sql
stable;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。