SSRS - Как показывать 6 месяцев, когда дата начала всегда суббота? - PullRequest
0 голосов
/ 08 ноября 2018

Мне нужна помощь в расчете даты начала для параметров даты моего отчета.

Конечной датой всегда будет последнее воскресенье, здесь: = DateAdd ("d", 1 - WeekDay (Today (), 1), Today ())

Мне нужна помощь, как написать формулу, чтобы вернуться на 6 месяцев с сегодняшнего дня и выбрать первую субботу в этом диапазоне.

Спасибо заранее.

1 Ответ

0 голосов
/ 08 ноября 2018

Предполагая, что ваш начальный день - воскресенье, вы можете использовать это ...

=DATEADD(
        DateInterval.Day, 
        7 - WEEKEDAY( DATEADD(DateInterval.Month,-6,Today()), FirstDayOfWeek.Sunday),  
        DATEADD(DateInterval.Month,-6,Today())
        )

Это работает следующим образом

WEEKEDAY( DATEADD(DateInterval.Month,-6,Today()), FirstDayOfWeek.Sunday)

Берет сегодняшнюю дату, вычитает 6 месяцев и затем выясняет, что это за число. Выполнение этого сегодня (2018-11-08) дает использование (2018-05-10), то есть четверг, это день номер 5

Суббота - день номер 7 (если ваш первый день недели - воскресенье). Так как число не может быть больше 7, мы можем сделать простое вычитание 7 минус число дня, в которое мы приземлились (сверху), что дает нам необходимую корректировку в 2 дня.

Наконец, внешняя функция DATEADD просто говорит: добавьте наши вычисленные 2 дня к дате 6 месяцев назад.

Надеюсь, это имеет смысл!?

Если первый день недели для вас не является воскресным, то вам, возможно, придется выполнить расчет Mod% по второму аргументу, чтобы вычислить правильное количество дней для корректировки.

...