根据 SSRS 中今天的工作日返回日期

Returning the date depending on today's weekday in SSRS

我刚开始报告使用 SSRS 进行构建。 我目前正在尝试让 SSRS 中的表达式根据今天是否在周末显示特定日期。我试图通过使用 Microsoft 在其文档中提供的不同日期函数来实现这一点。这是我到目前为止得到的:

=IIF(WeekdayName(weekday(DateAdd(DateInterval.Day, -1, today()))) = 'Monday', CDate(DateAdd("d", -3, Parameters!DateTo.Value)), 
IIF(WeekdayName(weekday(DateAdd(DateInterval.Day, -1, today()))) = 'Sunday', CDate(DateAdd("d", -2, Parameters!DateTo.Value)),
CDate(DateAdd("d", -1, Parameters!DateTo.Value))))

如您所见,我正在尝试获取它,所以如果今天是星期天或星期一,日期值 returned 应该是上周五的日期,否则它应该是 return 昨天的日期。

在 Report Builder 中,我收到一条错误消息,指出需要一个表达式,但我无法保存文件。

我在这里错过了什么?是否有不同的方法来实现这一目标?感谢您的帮助。

BR, 菲利普

我会这样做...可能有更有效的方法,但这是我的方法...

=IIF(
    Weekday(Today())=7 OR Weekday(Today())=1
    ,DATEADD(DateInterval.Day, (Weekday(Today())+1) * -1, Today())
    , Today()
    )

注意 这假设您的一周从星期日开始,如果不是,请调整 IIF 的第一部分以适应。

所以我们在这里说...

如果今天是星期六 (7) 或今天是星期日 (1),则从当前日期减去(当前天数 +1),否则 return 当前日期。