我正在尝试创建一个用户定义的函数,该函数采用类型"时间戳的值,没有时区"并生成类型"时区的值与时区"。在我的情况下,我想将其转换为Mountain Standard Time。
我的功能目前如下:
CREATE OR REPLACE FUNCTION to_mst(x timestamp without time zone) RETURNS
timestamp with time zone
AS $$ SELECT x AT TIME ZONE 'UTC' AT TIME ZONE 'MST7MDT'; $$
LANGUAGE SQL
IMMUTABLE
STRICT;
当我尝试运行时,我得到:
ERROR: return type mismatch in function declared to return timestamp with time zone
DETAIL: Actual return type is timestamp without time zone.
CONTEXT: SQL function "to_mst"
我知道AT TIME ZONE 'UTC' AT TIME ZONE 'MST7MDT'
达到了预期的效果。我已经多次使用它了。
我无法弄清楚出了什么问题。请帮忙。