首页 > 解决方案 > 用 ssrs 中的年、月、日下拉菜单替换日历 dateto/from

问题描述

最好的方法是使用参数将日期下拉列链接到第一个月,以便每个月都有正确的日期?

标签: sqlreporting-services

解决方案


您还需要将 Year 参数用于 2 月的闰日。

我会根据您的其他参数使用日期表:

DECLARE @YEAR AS INT = 2016 --FOR DEV/TESTING - REFERENCE PARAMETERS
DECLARE @MONTH AS INT = 2 --FOR DEV/TESTING



DECLARE @START_DATE DATE = CAST(@YEAR AS VARCHAR(4)) + '-' + RIGHT('0' + CAST(@MONTH AS VARCHAR(2)), 2) + '-' + '01'
DECLARE @END_DATE  DATE  = DATEADD(DAY, -1, DATEADD(MONTH, 1, @START_DATE))


;WITH GETDATES AS  
    (  
        SELECT @START_DATE AS THEDATE
        UNION ALL  
        SELECT DATEADD(DAY,1, THEDATE) FROM GETDATES  
        WHERE THEDATE < @END_DATE  
)

SELECT DAY(GETDATES.THEDATE) AS DAYS FROM GETDATES 
OPTION (maxrecursion 0)

推荐阅读