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

Dynamic Date Range in SSRS or SQL Data Tools builder

我正在做一份报告,每个月 1 日和 16 日 运行。

如果是运行宁日1号我需要@start_date是上个月的16号到最后一天。

如果是 运行ning 在 16 号,我需要 @start_date 是该月的 1 号到 15 号。

我可以想出几个方法来做到这一点,但我很好奇 SSRS/Report Builder/SQL Data Tools builder 有一个简单的方法来设置它。

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

如果你运行上个月的报表那么参数应该设置为上个月的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))))