如何在Heroku上使用Temporal Postgres / Postgres 9.2的PERIOD功能?

时间:2012-09-16 06:04:37

标签: postgresql datetime heroku timestamp postgresql-9.2

我正在构建一个应用程序,用于处理时间和持续时间,以及数据库中给定时间单位和开始/结束时间之间的交叉点,例如:

数据库:

Row # | start - end
Row 1 | 1:00 - 4:00
Row 2 | 3:00 - 6:00

我希望能够选择两个特定时间之间的时间总和,或者GROUP BY一个INTERVAL,以便返回的记录集在给定的时间间隔内每个总和都有一行,如:

SELECT length( (start, end) )  WHERE (start, end) INTERSECTS (2:00,4:00)

(在这种情况下(开始,结束)是PERIOD,它是Postgres Temporal和pg9.2中的新数据类型)

会返回

INTERVAL 3 HOURS

因为第1行在2:00到4:00之间有两个小时,而第2行在那段时间有一个小时。

此外,我希望能够:

SELECT "lower bound of start", length( (start, end) )  GROUP BY INTERVAL 1 HOUR

我想回复:

1:00 | 1
2:00 | 1
3:00 | 2
4:00 | 2
5:00 | 1

在给定的时间间隔内每小时显示一行,在该时间间隔开始时显示时间总和

认为可以使用PERIOD类型,这在Postgres Temporal和Postgres 9.2中。但是,就我所知,Heroku目前还没有这些 - 所以,

如何在Heroku上启用这些类型的数学?

1 个答案:

答案 0 :(得分:1)

尝试跑步:

 heroku addons:add heroku-postgresql:dev --version=9.2

这应该会为您提供支持范围类型的9.2版本。由于这是非常alpha的任何反馈,将非常感谢dod-feedback@heroku.com