小编典典

在Postgres中将间隔间隔为几周

sql

这是关于日期的另一个SQL问题。’‘

我正在使用PHP和Postgres构建日历应用程序,以显示跨越数天,数周甚至数月的事件。每个事件都有一个开始日期和一个结束日期,按范围选择它们不是问题。但是,如果Postgres可以在每周的第一天拆分多周的活动,这对我很有用。有人告诉我可以使用GROUP BY和来完成此操作EXTRACT,但是我对SQL的理解还不够好。

问题是:可以做到这一点,精确的查询是什么样的?目前我正在使用SELECT * FROM events WHERE (range) OVERLAPS (range); 然后在PHP中进行拆分,但这显然不是最佳选择。


阅读 240

收藏
2021-04-28

共1个答案

小编典典

您可以使用Postgres函数generate_series。在8.3及更早版本中,请执行以下操作

select current_date + s.a as dates from generate_series(0,14,7) as s(a);

在8.4中,您还可以

SELECT * FROM generate_series('2008-03-01 00:00'::timestamp,
                              '2008-03-04 12:00', '10 hours');
2021-04-28