如何使用ssrs表达式显示上一个工作日

Sql*_*ner 2 reporting-services ssrs-2008 ssrs-grouping ssrs-tablix ssrs-2008-r2

我在ssrs报告中要求在表达式中显示上一个工作日日期.我在sql server中使用下面的sql来显示日期

DATEADD(DAY, CASE DATENAME(WEEKDAY, GETDATE()) 
                    WHEN 'Sunday' THEN -2 
                    WHEN 'Monday' THEN -3 
                    ELSE -1 END, DATEDIFF(DAY, 0, GETDATE()))
Run Code Online (Sandbox Code Playgroud)

可以帮助我使用类似的代码在ssrs表达式中显示上一个工作日(只是日期)吗?

Ian*_*ton 5

这样的东西在SSRS中功能相同:

=DateAdd(DateInterval.Day
    , Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
        ,DatePart(DateInterval.WeekDay, Today()) = 1, -2
        ,True, -1)
    , Today())
Run Code Online (Sandbox Code Playgroud)

甚至:

=DateAdd("d"
    , Switch(DatePart("w", Today) = 2, -3
        ,DatePart("w", Today) = 1, -2
        ,True, -1)
    , Today)
Run Code Online (Sandbox Code Playgroud)

这是相同的,但有一些语法快捷方式.

根据您所在的地区,您可能需要使用开始或周参数调用日期函数或调整表达式中的数字,但在英国环境中,上述工作正常.