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

#reporting-services #expression #dateadd #dateinterval

#службы отчетов #выражение #dateadd #dateinterval

Вопрос:

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

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

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

Ответ №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 дня к сегодняшней дате, и будет возвращена дата пятницы.

Дайте мне знать, если это поможет.

Комментарии:

1. спасибо за то, что это отлично сработало, и спасибо за объяснение, как это работает