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

时间:2015-01-15 15:34:06

标签: reporting-services ssrs-2008 ssrs-2008-r2 ssrs-tablix ssrs-grouping

我在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()))

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

1 个答案:

答案 0 :(得分:5)

这样的东西在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)

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

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