我编写了以下函数,只是为了从给定日期获取一周的开始日期,但我只是遇到错误
函数get_week_start_from_date(带时区的时间戳)不 存在
当我运行以下命令时:
CREATE OR REPLACE FUNCTION get_week_start_from_date(sourceDate timestamp) RETURNS char
AS $$ SELECT CONCAT(
'w/b ',
TO_CHAR(
TO_DATE(
CONCAT(
EXTRACT('YEAR' FROM sourceDate), EXTRACT('WEEK' FROM sourceDate)
),
'iyyyiw'
),
'Dy DDth Mon ''YY'
)
) $$
LANGUAGE SQL
IMMUTABLE
RETURNS NULL ON NULL INPUT;
SELECT get_week_start_from_date(NOW());
我已经测试了函数的实际内部结构,并且确实在函数外部运行(如果我用NOW()
代替sourceDate
)。我还测试了函数语法,这似乎也没问题。努力找出问题所在或得到更好的错误