使用标准日期算法在 PostgreSQL 中创建跨越多年的时间序列可能具有挑战性。 更可靠的方法是利用时间戳。
解决方案:
此查询有效地生成跨年的每日时间序列:
<code class="language-sql">SELECT date_trunc('day', dd)::date FROM generate_series ('2007-02-01'::timestamp , '2008-04-01'::timestamp , '1 day'::interval) dd;</code>
其工作原理如下:
::timestamp
显式转换为时间戳。这确保了年份边界的准确处理。generate_series
函数: generate_series
函数创建一系列时间戳,以一天递增('1 day'::interval)。date_trunc('day', dd)
将每个时间戳截断为一天的开始,::date
将结果转换为 date
数据类型以获得更清晰的输出。即使在处理不同年份的日期时,这种方法也能保证准确的时间序列生成。
以上是如何在 PostgreSQL 中生成年度时间序列?的详细内容。更多信息请关注PHP中文网其他相关文章!