簡體   English   中英

Postgres將參數添加到間隔語句

[英]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;

DB Fiddle 上的演示

您可以直接將 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM