如何在PostgreSQL中查询重复规则?

ter*_*zzy 7 postgresql icalendar recurrence calendar

我有一个重复表,存储iCalendar RFC 5545重复规则字符串.例如:

FREQ=MONTHLY;INTERVAL=2
Run Code Online (Sandbox Code Playgroud)

有谁知道任何postgres功能类似于做以下?

get_events_between(date,date)
Run Code Online (Sandbox Code Playgroud)

它只会查询重复表并解析rrule字符串.

fil*_*rem 7

在 PostgreSQL 中,从 version 11 开始,没有对 RFC-5545 Recurrence Rule 格式的内置支持。

但是有一个自定义扩展pg_rrule。当您安装它时,您应该能够以这种方式查询 Ical 计划:

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

作为替代方案,您必须构建自己的 RRULE 解析器。

附注。我不知道这个扩展有多稳定/经过验证。刚刚注意到它存在,使用谷歌搜索:-)

  • 这个看起来有更多的功能(rrule 集,也允许 EXRULE):https://github.com/volkanunsal/postgres-rrule (2认同)