SSRS或SQL数据工具构建器中的动态日期范围

时间:2015-01-28 20:55:57

标签: sql-server reporting-services reportbuilder3.0 sql-server-data-tools

我正在制作一份报告,该报告将在每月的1号和每月的16号进行。

如果它在1日运行,我需要@start_date为上个月最后一天的第16天。

如果它在16日运行,我需要@start_date作为该月的第1个月至本月15日。

我可以想到几种方法,但我很好奇SSRS / Report Builder / SQL数据工具构建器有一个简单的方法来设置它。

我的选择是创建一个执行我需要的SQL查询,然后从参数的查询部分将其插入Get Balues。

1 个答案:

答案 0 :(得分:3)

如果您在该月的第一部分运行报告,则参数应设置为上个月的第16个月末;如果在该月的第二部分运行,则参数应设置为当前月份的第1天至第15天。

@start_date默认值表达式:

=IIF(Day(Today) >= 16, DateAdd(DateInterval.Day, 1-Day(Today), Today), DateAdd(DateInterval.Month, -1, (DateAdd(DateInterval.Day, 16-Day(Today), Today))))

@end_date默认值表达式:

=IIF(Day(Today) >= 16, DateAdd(DateInterval.Day, 15-Day(Today), Today), DateAdd(DateInterval.Day, -1, (DateAdd(DateInterval.Day, 1-Day(Today), Today))))