Я получил этот пример из одного вопроса StackOverflow, который был задан, но я не смог заставить его работать в соответствии с моими потребностями.
WITH DateTable
AS
(
SELECT CAST('20110101' as Date) AS [DATE]
UNION ALL
SELECT DATEADD(dd, 1, [DATE]) FROM DateTable
WHERE DATEADD(dd, 1, [DATE]) < cast('20110131' as Date)
)
SELECT dt.[DATE] FROM [DateTable] dt
Input-
ID | FromDate | ToDate
=============================
1 | 2011-11-10 | 2011-11-12
2 | 2011-12-12 | 2011-12-14
Output -
SN | Dates |
==================
1 | 2011-11-10 |
2 | 2011-11-11 |
3 | 2011-11-12 |
4 | 2011-12-12 |
5 | 2011-12-13 |
6 | 2011-12-14 |
См. Этот код отлично работает для статических дат.Но в моем случае у меня есть таблица, содержащая три столбца Id, FromDate, ToDate
.Теперь я хочу преобразовать каждый диапазон в каждой строке в отдельные даты.
Я не могу заставить приведенный выше пример работать в случае, если диапазон исходит из таблицы и, очевидно, этот запрос должен выполняться для каждой строки втаблица диапазонов, что является еще одной непонятной проблемой.
Пожалуйста, помогите.