如何在SSRS报告字段中计算和显示日期范围?

时间:2016-06-02 15:19:31

标签: reporting-services parameters expression ssrs-expression

在我正在处理的报告中,用户输入开始日期和结束日期。通常情况下,两者将持续两周,例如,如果他们在开始日期进入2016年5月15日,在结束日期进入2016年5月28日。

我需要在列标题中显示的是第一周超过一列(在上面的情况下,将是5/15 - 5/21/16),第二周超过另一列(这将在此case 5/22 - 5/28/16)。

要实现此目的,假设参数BegDate包含5/15/2016且参数EndDate包含5/28/2106,我需要在这两个列标题的Textbox Expression属性中执行什么操作?

2 个答案:

答案 0 :(得分:1)

向包含一周第一天的数据集添加新列。您可以在SQL中执行此操作:

DATEADD(DAY, 1-DATEPART(WEEKDAY, @d), @d)

您也可以将其作为数据集中的计算字段。

现在您只需在文本框中引用此字段即可。它甚至可以根据您的需要进行列分组。

答案 1 :(得分:1)

尝试:

第一周:

=Parameters!BegDate.Value & " - " &
DATEADD(DateInterval.Day, 7 - DATEPART(DateInterval.Weekday,Parameters!BegDate.Value), Parameters!BegDate.Value)

第二周:

=DATEADD(DateInterval.Day, -DATEPART(DateInterval.Weekday,Parameters!EndDate.Value)+1, Parameters!EndDate.Value)
& " - " & Parameters!EndDate.Value

示例:

enter image description here

如果有帮助,请告诉我。