Есть ли у кого-нибудь функция в SQL, которая задает начальную дату, номер дня и конечную дату для вычисления следующего соответствующего дня и месяца?
Я хотел бы знать, если у кого-то есть функция в SQL, которая дает начальную дату, номер дня, частоту и конечную дату, вычисляют следующий номер дня и месяц?
Например
@initialdate=20130101
@finaldate=20133112
@daynumber=14 --that means every 14
@frecuency=2
тогда запрос генерирует следующие даты как это:
20130114
20130314
20130514
20130714
20130914
20131114
Лучше, если решение представляет собой CTE, лучше, если оно будет подтверждено 28-29 февраля, а номер дня - 31.
Это запрос, над которым я работаю, он собирается сгенерировать дату, учитывая тип частоты, частоту и вхождение, которое зависит от типа частоты.
Type of Frec Frecuency Ocurrence
DI (Dairy) 1 (Every 1 day) na
DI (Dairy) 2 (Every 2 day) na
..
DI (Dairy) 6 (Every 6 day) na
SE (Weekly) 1 (Every 1 week) 1 (for Monday)
SE (Weekly) 2 (Every 2 weeks) 3 (for Wednesday)
SE (Weekly) 3 (Every 3 weeks) 5 (for Friday)
SE (Weekly) 4 (Every 4 weeks) 2 (for Tuesday)
MD (Monthly by day) 1 (Every 1 month) 1 (for first day of the month)
MD (Monthly by day) 1 (Every 1 month) 2 (for last day of the month)
...
MD (Monthly by day) 11 (Every 11 months) 2 (for last day of the month)
MF (Monthly by date) 1 (Every 1 month) 14 (for every 14 of the month)
...
MF (Monthly by date) 2 (Every 2 months) 30 (for every 30 of the month)
MF (Monthly by date) 3 (Every 3 months) 31 (for every 31 of the month)