如何使用 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)
相同但有一些语法快捷方式。
根据您所在的地区,您可能需要使用开始或周参数调用日期函数或调整表达式中的数字,但以上方法在英国环境中对我来说效果很好。
我在 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)
相同但有一些语法快捷方式。
根据您所在的地区,您可能需要使用开始或周参数调用日期函数或调整表达式中的数字,但以上方法在英国环境中对我来说效果很好。