我必须将 SQL Server 过程转换为 PostgreSQL,它将天数添加到给定日期。我做了一些研究并找到了一个解决方案,但它只适用于正数天数,当我将它传递一个负数(从给定日期移回)它永远不会起作用。以下是函数:
CREATE OR REPLACE FUNCTION public.add_business_day(
from_date date,
num_days integer)
RETURNS date
LANGUAGE 'sql'
COST 100
VOLATILE
AS $BODY$
select d
from (
select d::date, row_number() over (order by d)
from generate_series(from_date+ 1, from_date+ num_days * 2 + 5, '1d') d
where
extract('dow' from d) not in (0, 6)
) s
where row_number = num_days
$BODY$;
是否有任何修复/修改或替代此逻辑以使其适用于正数和负数天数?