我正在尝试在Postgres数据库中创建以下函数:
create or replace function public.extract_hour(time_param timestamp with time zone) returns double precision language sql as $function$
SELECT EXTRACT(hour from timestamp time_param);
$function$;
但是我收到以下错误:
ERROR: syntax error at or near "time_param"
我试图代替time_param
$0
,但发生了同样的错误。有人可以解释一下如何解决这个问题吗?
答案 0 :(得分:1)
显然,您使用的是较旧版本的PostgreSQL(您忽略了它)。从PostgreSQL 9.2开始,可以参考参数 names 。在旧版本中,您只能参考位置参数:
CREATE OR REPLACE FUNCTION public.extract_hour(time_param timestamptz)
RETURNS double precision LANGUAGE sql AS
$function$
SELECT EXTRACT(hour from $1);
$function$;
我还删除了错位的关键字timestamp
。
虽然PL / pgSQL函数中很长一段时间都可以参考参数名称 We fixed a documentation glitch to the opposite just recently.