[英]Prepared statement with date added by interval as parameter in Postgresql
[英]Postgres add parameter to interval statement
我正在嘗試在 postgres function 間隔語句中添加一個參數。 不知道怎么添加。。。
像下面這樣:
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;
您可以直接將 integer 添加到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;
但是我不明白你為什么對單個值使用設置返回 function 。 在這種情況下,標量 SQL function 會更好:
CREATE OR REPLACE FUNCTION test_date(number integer)
RETURNS date
AS
$body$
select current_date + number;
$body$
language sql
stable;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.