ホームページ > データベース > mysql チュートリアル > SQL で過去 1 年間の日付範囲を効率的に生成するにはどうすればよいですか?

SQL で過去 1 年間の日付範囲を効率的に生成するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-06 16:57:40
オリジナル
934 人が閲覧しました

How Can I Efficiently Generate a Date Range in SQL for the Past Year?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート