ホームページ > データベース > mysql チュートリアル > T-SQL で一連の増加する日付を生成するにはどうすればよいですか?

T-SQL で一連の増加する日付を生成するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-11 19:57:43
オリジナル
546 人が閲覧しました

How to Generate a Series of Incrementing Dates in T-SQL?

T-SQL での一連の日付の生成: 効率的な方法

この記事では、SQL Server バージョン 2005 以降と互換性のある T-SQL を使用して、指定された範囲内で一連の連続する日付を作成する効率的な手法について説明します。 WHILE ループも可能なアプローチですが、日付範囲が大きくなると効率が低下する可能性があります。 優れた方法では、spt_values システム テーブルを利用します。

最大 2047 日の日付範囲の場合、次の T-SQL クエリが効果的なソリューションを提供します。

<code class="language-sql">DECLARE @startDate DATETIME, @endDate DATETIME;
SET @startDate = GETDATE();
SET @endDate = DATEADD(day, 100, @startDate);

SELECT DATEADD(day, number, @startDate) AS IncrementalDate
FROM (SELECT number FROM master.dbo.spt_values WHERE [type] = 'P') AS NumberSequence
WHERE DATEADD(day, number, @startDate) < @endDate;</code>
ログイン後にコピー

このクエリは、spt_values 内の数値シーケンスを利用して日付系列を生成します。 シーケンス内の各数値を @startDate に追加し、事実上、増加する日付を作成します。 WHERE 句は、生成された日付が @startDate@endDate で定義された目的の範囲内に収まるようにします。 このアプローチにより、反復的な WHILE ループ メソッドに関連することが多いパフォーマンスの制限が回避されます。

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

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