У меня есть таблица для пакетов, где каждый пакет состоит из количества дней, дней, включенных [в любое время дня, воскресенье, ...]Начало Окончания на основе даты начала и окончания - T-SQL
Package | Duration | Days Included
-------------------------------------------
Package 1 | 10 days | '1,2,3' [Sun, Mon, Tue]
Package 2 | 15 days | '4,5,6,7' [Wed, Thu, Fri, Sat]
Package 3 | 30 days | '1,2,3,4,5,6,7' [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
etc
Когда клиент выбирает какой-либо пакет (выбрав дату начала), мне нужно рассчитать дату истечения срока действия этого пакета на основании нет. дней и дней, включенных в этот пакет.
Мне нужно создать функцию, в которой будет возвращена Дата истечения срока действия, предоставляющая следующие 3 входа.
- Дата начала
- Количество дней
- дней, которые будут включены
Пример:
для пакета 1, начиная с 13-Mar-2016, Correct Дата окончания должен быть: 03-апр-2016 (10 дней будет 13,14,15,20,21,22,27,28,29 03 марта 2012 года) Apr)
DECLARE @StartDate DATETIME
DECLARE @NoDays INT
DECLARE @EndDate DATETIME
SET @EndDate = DATEADD(DD, @NoDays, @StartDate)
До сих пор я сделал это, но в том числе все 7 дней.
Может ли кто-нибудь помочь, как только конкретные дни могут быть включены для получения правильной даты истечения срока?
Пожалуйста, объясните, как * дней Включено * работает – har07
Кроме того, оставить правильный ' Пример EndDate при задании определенных «StartDate», «NoDays» и «Days Days» – har07
@ har07 Я отредактировал вопрос одним образцом. Спросите меня, если все еще неясно –