Это даст вам результат, однако Мои списки ответить на все 8-го рабочего дня от Конкретная дата.
Он не рассматривает праздники, хотя. С небольшими изменениями вы также можете рассмотреть праздники.
Вы можете использовать top 1
последние select
, чтобы получить только одну дату.
DECLARE @start date
SELECT @start = '20160101'
;WITH n AS (
SELECT n = ROW_NUMBER() OVER (ORDER BY [object_id])
FROM sys.all_objects
), dates AS (
SELECT DATEADD(DAY, n - 1, @start) Dt
FROM n
), dayNum AS (
SELECT Dt, DATENAME(WEEKDAY, Dt) WeekDayName
, ROW_NUMBER() OVER (ORDER BY Dt) DayNumber
FROM dates
WHERE DATENAME(WEEKDAY, Dt) NOT IN ('Saturday', 'Sunday')
)
SELECT Dt, DATENAME(WEEKDAY, Dt) WeekDayName
FROM dayNum
WHERE DayNumber % 8 = 0
ORDER BY Dt
Выборочные данные, желаемый результат, то, что вы пробовали youtrself? –
Как получить 8-й рабочий день текущего месяца на сервере sql, как –
Найти первый рабочий день ... http: //stackoverflow.com/a/27110176/6167855 ... затем выяснить, какой день недели, который с помощью 'DATEPART (dw, yourDate)' затем добавьте соответствующее количество дней, используя 'DATEADD()', чтобы обеспечить учет для выходных. – scsimon