我有一个重复表,用于存储iCalendar RFC 5545重现规则字符串。前任:

FREQ=MONTHLY;INTERVAL=2

有谁知道与以下类似的postgres函数吗?
get_events_between(date,date)

它只查询递归表并解析rrule字符串。

最佳答案

在PostgreSQL中,从版本11开始,没有对RFC-5545重现规则格式的内置支持。

但是有一个自定义扩展名pg_rrule。安装它时,您应该可以通过以下方式查询Ical计划:

SELECT *
FROM unnest(
    get_occurrences(
        'FREQ=MONTHLY;INTERVAL=2'::rrule,
        now(),
        now() + '6 months'::interval
    )
);

或者,您必须构建自己的RRULE解析器。

PS。我不知道此扩展的稳定性如何。刚刚注意到它的存在,使用谷歌搜索:-)

10-05 19:01