Рассмотрим необходимость создания набора дат. У нас есть даты начала и окончания, и мы хотели бы создать список дат между ними.
DECLARE @Start datetime
,@End datetime
DECLARE @AllDates table
(@Date datetime)
SELECT @Start = 'Mar 1 2009', @End = 'Aug 1 2009'
--need to fill @AllDates. Trying to avoid looping.
-- Surely if a better solution exists.
Рассмотрим текущую реализацию с помощью цикла WHILE
:
DECLARE @dCounter datetime
SELECT @dCounter = @Start
WHILE @dCounter <= @End
BEGIN
INSERT INTO @AllDates VALUES (@dCounter)
SELECT @[email protected]+1
END
Вопрос:. Как бы вы создали набор дат, которые находятся в пределах пользовательского диапазона, используя T-SQL? Предположим, что SQL 2005+. Если ваш ответ использует функции SQL 2008, отметьте как таковой.