【发布时间】:2017-10-28 00:57:57
【问题描述】:
我正在尝试在两个日期之间和特定时间段内生成一系列 tstzrange。
例如,我想创建一个时间序列,该时间序列由 2017 年 10 月 27 日至 2017 年 11 月 27 日 UTC 下午 5 点至 9 点之间的每一天组成。
以下伪代码失败,但希望能说明我想要实现的目标:
select *
from generate_series(
tstzrange(timezone('UTC', '2017-10-27 17:00'), timezone('UTC', '2017-10-27 21:00'), '[]'),
tstzrange(timezone('UTC', '2017-11-27 17:00'), timezone('UTC', '2017-11-27 21:00'), '[]'),
'1 day'::interval) timeslots;
我想要的结果是(自然地调整时区):
["2017-10-27 17:00:00-04","2017-10-27 21:00:00-04"]
["2017-10-28 17:00:00-04","2017-10-28 21:00:00-04"]
["2017-10-29 17:00:00-04","2017-10-29 21:00:00-04"]
.
.
.
["2017-11-25 17:00:00-04","2017-11-25 21:00:00-04"]
["2017-11-26 17:00:00-04","2017-11-26 21:00:00-04"]
["2017-11-27 17:00:00-04","2017-11-27 21:00:00-04"]
这在 Postgresql 最新版本中是否可行?
【问题讨论】:
标签: sql postgresql