SQL クエリを構築する場合、多くの場合、日付範囲を操作する必要があります。このニーズに応えるために、SQL には日付のシーケンスを生成する機能が含まれています。クエリの実行に役立つ日付の範囲を生成する方法を見てみましょう。
一般的なシナリオの 1 つは、昨年を表す一連の日付を生成することです。純粋な SQL を使用してこれを実現するには、次のようなクエリを使用できます。
SELECT TRUNC(SYSDATE - ROWNUM) dt FROM DUAL CONNECT BY ROWNUM < 366
このクエリは、Oracle の DUAL テーブル、つまり 1 行 1 列のテーブルを利用します。これは、順序。 CONNECT BY 句を使用すると、再帰的なクエリの実行が可能になり、SYSDATE (現在のシステム日付) を減分することで一連の日数が作成されます。 ROWNUM 疑似列は反復回数を提供し、< を指定します。 366 は、365 日の範囲を生成します (さらに、閏年を考慮して追加の 1 日を追加します)。
または、完全な日付の代わりに日のオフセットを生成し、日付パラメータに適用することもできます:
SELECT SYSDATE - val FROM (SELECT 0 + LEVEL - 1 val FROM DUAL CONNECT BY LEVEL < 366)
このクエリは、LEVEL 疑似列を使用して一連の日オフセットを生成します。これを SYSDATE と組み合わせて、範囲を生成できます。
互換性と効率性を確保するために、これらのソリューションを実装するときは、データベース固有の構文と機能を必ず考慮してください。
以上がSQL で日付範囲を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。