PostgreSQLの日付間隔時系列生成方法
PostgreSQL が時系列データを処理する場合、多くの場合、指定された 2 つの日付の間の一連の日付を生成する必要があります。一般的な方法は、generate_series()
関数を使用することです。
<code class="language-sql">select date '2004-03-07' + j - i as AllDate from generate_series(0, extract(doy from date '2004-03-07')::int - 1) as i, generate_series(0, extract(doy from date '2004-08-16')::int - 1) as j</code>
ただし、このアプローチでは、異なる年にまたがる日付を扱う場合に制限が発生することがあります。この状況を効果的に解決するには、次の点を考慮してください:
<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>
このクエリは、指定されたタイムスタンプ間の日付の範囲を生成し、認識された日付形式に変換してから返します。 2 つの日付が複数年にまたがる場合でも、精度が維持されます。
以上がPostgreSQL で日付間の時系列を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。