根据 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 当前日期。
我刚开始报告使用 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 当前日期。