SQL Serverで制限なく指定した日付期間のデータを作成する
以前に「SQL Serverで指定した日付期間のデータを作成する」の記事を作成しましたが、その記事で紹介したSQLでは100件までという制限がありました。
今回は制限なく指定した日付期間のデータを作成するSQLを紹介します。
コーディング例
BEGIN DECLARE @StartYMD INT = 20240101; DECLARE @EndYMD INT = 20241231; WITH TBL AS ( SELECT @StartYMD AS YMD UNION ALL SELECT CAST(CONVERT(VARCHAR, DATEADD(DAY, 1, CONVERT(DATE, CONVERT(VARCHAR, YMD))), 112) AS INT) AS YMD FROM TBL WHERE YMD < @EndYMD ) SELECT * FROM TBL OPTION(MAXRECURSION 0); END
実行結果
YMD |
---|
20240101 |
20240102 |
20240103 |
20240104 |
20240105 |
(省略) |
20241227 |
20241228 |
20241229 |
20241230 |
20241231 |
18行目の「OPTION(MAXRECURSION 0)」により上限を無制限にしています。
「OPTION(MAXRECURSION 1000)」にすれば1,000行まで表示可能になります。
この記述がなければ100件まで表示可能となります。
以上、制限なく指定した日付期間のデータを作成するSQLの紹介でした。