Выражение SSRS для текущего понедельника и текущей пятницы

У меня есть следующее выражение для текстового поля в отчете в SSRS

="TR1's Sent Between "+Format(dateadd(DateInterval.Day,1-WeekDay(Today), Today), "dd/MM/yyyy")

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


person sql2015    schedule 24.10.2016    source источник


Ответы (1)


Попробуйте использовать эти два выражения:

Для Mondays вы можете использовать что-то вроде этого:

=Format(Today.AddDays(1-WeekDay(Today,FirstDayOfWeek.Monday)),"dd/MM/yyyy")

Для Fridays вы можете использовать:

=FORMAT(Today.AddDays(5-WeekDay(Today,FirstDayOfWeek.Monday)),"dd/MM/yyyy")

Первая проблема с вашим выражением заключается в том, что вы не указываете первый день недели в функции WeekDay, если ваше выражение возвращает дату воскресенья, по умолчанию в вашей системе первым днем ​​недели является воскресенье.

Мое выражение берет сегодняшнюю дату и добавляет / вычитает количество дней, необходимых для получения первого дня недели: понедельника. Поскольку я устанавливаю первый день недели в своем выражении с помощью FirstDayOfWeek.Monday, он вычисляет 1-1 = 0, он добавит ноль дней к сегодняшней дате, поскольку сегодня понедельник (по крайней мере, сейчас в Колумбии).

Поскольку пятница аналогична, пятница - это 5-й день недели, поэтому вам нужно добавить / вычесть необходимое количество дней к сегодняшней дате, чтобы получить ее дату. 5-1 = 4 (5 - 1 Сегодняшний день недели, учитывая, что понедельник является первым днем), теперь просто добавьте 4 дня к сегодняшней дате, и он вернет дату пятницы.

Позвольте мне знать, если это помогает.

person alejandro zuleta    schedule 24.10.2016
comment
спасибо за то, что он отлично сработал, и спасибо за объяснение, как это работает - person sql2015; 24.10.2016