標準の日付演算を使用して 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 日ずつ増加する一連のタイムスタンプを作成します ('1 day'::interval)。date_trunc('day', dd)
は各タイムスタンプをその日の始まりまで切り捨て、::date
は結果を date
データ型にキャストして出力をきれいにします。このアプローチでは、異なる年にわたる日付を扱う場合でも、正確な時系列の生成が保証されます。
以上がPostgreSQL で年次時系列を生成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。