当前星期一和当前星期五的SSRS表达式

时间:2016-10-24 13:03:12

标签: reporting-services expression dateadd dateinterval

我在SSRS的报表上有一个文本框的以下表达式

="TR1's Sent Between "+Format(dateadd(DateInterval.Day,1-WeekDay(Today), Today), "dd/MM/yyyy")

这将返回星期日而不是星期一。有谁知道如何显示当前的星期一和当前的星期五?如果你能解释每个部分,那么我理解那个很棒的格式

1 个答案:

答案 0 :(得分:3)

尝试使用这两个表达式:

对于Mondays,您可以使用以下内容:

=Format(Today.AddDays(1-WeekDay(Today,FirstDayOfWeek.Monday)),"dd/MM/yyyy")

对于Fridays,您可以使用:

=FORMAT(Today.AddDays(5-WeekDay(Today,FirstDayOfWeek.Monday)),"dd/MM/yyyy")

表达式的第一个问题是,您没有在WeekDay函数中指定星期的第一天,如果您的表达式返回星期日,则系统默认的第一天是星期日。

我的表达需要今天的日期,并添加/减去获得一周的第一天所需的天数:星期一。当我使用FirstDayOfWeek.Monday计算1-1 = 0时,我在表达式的第一天设置5-1 = 4它将在今天的星期一(至少现在在哥伦比亚)为今天的日期添加零天。

周五类似,周五是一周中的5天,所以你必须在今天的日期加上/减去所需的天数才能得到它的日期。 std::string(5 - 1 今天和星期几的星期几,考虑星期一是第一天),现在只需将4天添加到今天的日期,它将返回星期五日期。

如果这有帮助,请告诉我。