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

How to display previous business day using ssrs expression

我在 ssrs 报告中要求在 expression.I 中显示前一个工作日日期,我在 sql 服务器中使用下面的 sql 来显示日期

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

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

类似这样的东西在 SSRS 中在功能上是等价的:

=DateAdd(DateInterval.Day
    , Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3
        ,DatePart(DateInterval.WeekDay, Today()) = 1, -2
        ,True, -1)
    , Today())

甚至:

=DateAdd("d"
    , Switch(DatePart("w", Today) = 2, -3
        ,DatePart("w", Today) = 1, -2
        ,True, -1)
    , Today)

相同但有一些语法快捷方式。

根据您所在的地区,您可能需要使用开始或周参数调用日期函数或调整表达式中的数字,但以上方法在英国环境中对我来说效果很好。