1

誰かがこれについて迅速に答えてくれることを願っています...

開始日と終了日があります。含まれるすべての日の完全なリストを作成する最も迅速/簡単な方法は何ですか?

startDate         endDate
------------------------------
2013-01-01        2013-01-07

生成されます:

day        date
--------------------
 1        2013-01-01
 2        2013-01-02
 3        2013-01-03
 4        2013-01-04
 5        2013-01-05
 6        2013-01-06
 7        2013-01-07

ご静聴ありがとうございました!:)

4

1 に答える 1

1

これは 2,000 日以上 (SQL Server のバージョンとユーザー オブジェクトの数によって異なります)をサポートしますsys.all_objectssys.all_columns

DECLARE @start DATE = '20130101', @end DATE = '20130107';

;WITH x AS
(
  SELECT TOP (DATEDIFF(DAY, @start, @end)+1) 
    rn = ROW_NUMBER() OVER (ORDER BY [object_id])
    FROM sys.all_objects
)
SELECT [day] = rn, [date] = DATEADD(DAY, rn-1, @start)
FROM x
ORDER BY rn;
于 2013-10-10T19:51:29.053 に答える