SQL クエリを使用した日付範囲の生成
SQL データベースを使用する場合、特定の時間範囲のデータをフェッチするのは一般的なタスクです。日付パラメータを必要とする SQL クエリがあり、それを過去 1 年間の毎日に対して繰り返し実行する必要があると想像してください。各日付を手動で入力することを避けるには、日付の動的リストを生成する必要があります。
1 つの方法は、数値リスト (0 ~ 364) を作成し、SQL 関数 SYSDATE を使用して日付を操作することです。ただし、大規模なテーブルや中間計算の必要性を排除した、より効率的な方法が存在します。
次の SQL クエリを考えてみましょう:
SELECT TRUNC (SYSDATE - ROWNUM) dt FROM DUAL CONNECT BY ROWNUM < 366
このクエリは、SQL の CONNECT BY 句の機能を活用しています。指定された条件に基づいて行を再帰的に生成します。この場合、条件は ROWNUM
各行は、現在の日の SYSDATE から ROWNUM 値を減算した日付を表します。 TRUNC 関数は、時刻情報を除いて、日、月、年の構成要素のみを含むように日付を単純化します。
その結果、このクエリは、過去 1 年の毎日を表す 365 個の個別の日付のリストを生成します。 、これは、目的の SQL クエリのパラメーターとして便利に使用できます。この手法により、日付生成プロセスが合理化され、面倒な手動入力や追加のテーブル検索が不要になります。
以上がSQL で過去 1 年間の日付範囲を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。