关于时区从夏令时到非夏令时变化的棘手问题,我很难过。postgres:生成关于时区的一系列时间戳
我试图生成一系列时间戳,相隔6小时。稍后在数据集中每天在00,06,12,18小时与具有相应时间戳的数据结合。
这通常工作正常使用:
generate_series(extract(epoch from start_ts)::integer, extract(epoch from end_ts)::integer, 21600)
其中start_ts是在第一次约会00小时,并end_ts是排他性的最后一天00小时。
但是,如果时区偏移量从+11到+10在整个系列的一半时间内变化,它将不再匹配任何记录,因为系列元素变为1小时关闭。
有没有人有建议如何产生一系列'纪元整数'或时间戳,将匹配00,06,12,18小时时间戳,同时尊重时区的偏移?
增加了一个修正和测试 –
我喜欢它!好像我们使用的是9.4,而不是9.5,它向generate_series引入了'数字'参数类型,在此之前只允许int/bigint。我会看看我们是否可以升级。谢谢!然而,我确实设法以更冗长的方式解决它;生成2个序列 - 1前进1后退,然后验证每个结果。我将以解决方案的形式发布,因为它在时区z'有其他一些好处'to_timestamp(val)。 – pstanton