我的目标是使用PostgreSQL:创建一个看起来像这样的表
date date_start date_end
12/16/2015 11/17/2015 12/16/2015
12/17/2015 11/18/2015 12/17/2015
etc.
这样,我就可以加入一个不同的表,在滚动的30天窗口中获得每个日期的聚合。我一直在做一些研究,我认为generate_series()
是我想要使用的,但我不确定。
类似这样的东西:
SELECT '2015-12-16'::date + g - 30 AS date_start
, '2015-12-16'::date + g AS date_end
FROM generate_series (0, 25) g; -- number of rows
我跳过了多余的date
列。(无论如何,您不应该使用基本类型名称作为标识符。)
generate_series()
有一个变体可以使用时间戳,但生成integer
数字的简单版本同样适用于日期。也许更好,因为你可以避免与时区混淆。
日期文字始终使用ISO 8601格式,这对于任何datestyle
或区域设置都是明确的。
相关:
- 日期间隔内的滚动总和/计数/平均值