0

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たが、同じエラーが発生します。誰かがそれを解決する方法を説明できますか?

4

1 に答える 1

1

明らかに、古いバージョンの PostgreSQL を使用しています (提供を怠っています)。パラメータ名の参照は PostgreSQL 9.2 以降で可能です。古いバージョンでは、位置パラメーターのみを参照できます。

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 関数で長い間可能でした。
つい最近、反対側のドキュメントの不具合を修正しました。

于 2013-05-15T12:29:37.827 に答える