从Postgresql中的日期中减去数字

Subtracting numeric from date in Postgresql

当我执行这些脚本时,它在 postgresql 中有效;

select '2021-09-01'::Date - 1

select current_date -1 

但是当我在函数中使用这种类型的减法时,postgresql 给我这样的错误;

声明部分的函数用法:

v_date date := p_date - p_number;
ERROR:  operator does not exist: date - numeric

尝试:

v_date date := p_date - p_number::int;.

根据 Date/Time Operators,您只能从日期中减去整数、间隔或日期。

注意::int 转换会四舍五入数字。

更新

另一种选择是从一开始就让 p_number 成为整数,但这取决于它是否被用于其他需要数字的目的。