PGSQL用户定义函数返回类型不匹配时区转换

时间:2018-02-28 21:57:18

标签: postgresql

我正在尝试创建一个用户定义的函数,该函数采用类型"时间戳的值,没有时区"并生成类型"时区的值与时区"。在我的情况下,我想将其转换为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'达到了预期的效果。我已经多次使用它了。

我无法弄清楚出了什么问题。请帮忙。

0 个答案:

没有答案