ホームページ >データベース >mysql チュートリアル >SQL Server 2008 で日付範囲を生成するにはどうすればよいですか?

SQL Server 2008 で日付範囲を生成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-15 08:46:41636ブラウズ

How to Generate Date Ranges in SQL Server 2008?

SQL を使用して日付範囲を生成します

SQL Server 2008 では、データベース管理者にとって、指定された 2 つの日付の間の日付範囲をテーブルに設定するのは困難です。この問題に対処するために、SQL Server 2008 の実際的な解決策を以下に示します。

このクエリは、一連の数値を含むテーブルを利用して日付を生成します。クエリの最初の行では、目的の日付範囲の開始と終了をそれぞれ表す @StartDate と @EndDate という 2 つの変数を宣言します。

括弧内のサブクエリは、1 から sys.columns テーブル内の行数までの一連の数値を生成します。このサブクエリは、数値テーブルまたはカウント テーブルの代わりとして機能します。結果の数値は nbr 列に格納されます。

WHERE 句は、指定された日付範囲内にある数値のみを含むように数値をフィルター処理します。具体的には、nbr - 1 が開始日と終了日の差以下であるかどうかを確認します。行番号は 1 から始まるため、この計算は調整されます。

クエリは、該当する数値ごとに DATEADD 関数を使用して、@StartDate を値 nbr - 1 だけ増分します。結果は、開始日から終了日までのすべての日付を毎日 1 行ずつ含むテーブルになります。

計数表の使用に代わる方法

カウント テーブルが利用可能な場合は、元のクエリのサブクエリを置き換えることができ、より効率的で簡潔なソリューションが得られます。カウント テーブルには一連の連続した数値が含まれているため、日付範囲を生成するための理想的なソースになります。カウントテーブルを使用したクエリは、参考までに回答に記載されています。

以上がSQL Server 2008 で日付範囲を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。