#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. спасибо за то, что это отлично сработало, и спасибо за объяснение, как это работает