SSRS - 工作日名称

6

需要任何建议。

我在列标题中使用了expression =WeekdayName(weekday(fields!date.value))

它返回一周中的某一天,但是它会提前一天,例如当我将星期一的日期放入参数中时,报告中显示为“星期二”。

我的问题是,上述表达式能否进行调整以显示前一天的WeekdayName,例如=WeekdayName(weekday(fields!date.value -1))? 我尝试了这个方法,但出现错误。

谢谢。

4个回答

7

如果你想从输入的日期中减去一天,那么你可以使用以下代码:

  = DateAdd("d", -1, yourdateField)

您可以使用此方法从日期中减去任意天数。

但是,您是否尝试查看为什么它会给出前一日期的日期。请检查系统日期时间或与之检查。

 =WeekdayName(weekday(Today())) 

并查看它是否为当前日期提供了正确的星期几。


感谢您回复。我想要做的是将“星期二”更改为“星期一”,以此类推,这样报告中的数据就会报告在正确的日期上。例如,目前当我运行1/12/14的报告时,它显示“星期二”,我想把它向后移一天。至于为什么首先会给出前一个日期,我感到困惑,并将进行单独的调查。谢谢。 - Will F
你可以使用 DateAdd-1 来从日期中减去一天,以获得前一天的日期。 - Mahesh
2
是的,这个完美地运行了 - =WeekdayName(weekday(dateadd("D",-1,fields!date.value))) - 谢谢你费心回复我。 - Will F

4

Weekday和weekdayname函数都有另一个可选参数,用于定义一周的起始日。 问题是这两个函数的默认值不同,因此根据您的服务器设置,应明确设置这些函数的第二个参数。


0
不需要调用日期函数。由于weekday()函数返回一个整数,您可以偏移结果并使用Mod运算符将其保持在范围内:
=WeekdayName((weekday(fields!date.value)+5) Mod 7)+1)

括号很重要,以确保加法先执行。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接