T-SQL で増分日付結果セットを生成します
SQL Server で、指定された開始日と終了日の間の日付セットを生成するには、効率的で最適化されたソリューションが必要です。一般的なアプローチは、WHILE ループを使用して、終了日に達するまで開始日に日を段階的に追加することです。
ただし、日付範囲が 2047 日以内の場合は、別の方法を使用できます。次の T-SQL クエリは spt_values システム テーブルを使用します:
<code class="language-sql">declare @dt datetime, @dtEnd datetime set @dt = getdate() set @dtEnd = dateadd(day, 100, @dt) select dateadd(day, number, @dt) from (select number from master.dbo.spt_values where [type] = 'P' ) n where dateadd(day, number, @dt) < @dtEnd</code>
このクエリは、0 ~ 2047 の数値範囲を含む spt_values テーブルを利用します。 「P」タイプをフィルタリングすると、連続した数値のセットが得られます。 dateadd 関数を使用して各数値が開始日付に追加され、事実上、増加する日付の結果セットが生成されます。
この方法には次の利点があります:
SQL Server 2008 以降の場合、この方法は、T-SQL で増加する日付セットを生成するための効率的で簡単なソリューションを提供します。
以上がT-SQL で一連の日付を効率的に生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。