[英]adding date columns in SSRS Report
我创建了一个SSRS报告。
在报告中,我提供了一个名为startDate
参数。 从startDate
我必须显示10列,例如week of dd-mon-yy
。
第一列包含开始日期所在的星期几。 然后使用即将到来的10个星期一。
图片中显示了示例。 如何在SSRS报告中实现这一目标。 我需要查询和列值。
要获取开始日期所在的一周中星期一的日期以及接下来的10个星期一的日期,您可以将查询编写为:
DECLARE @input date
SET @input = '12/29/2013'
SELECT 'Week of '+
REPLACE(CONVERT(VARCHAR(11),
DATEADD(wk, DATEDIFF(wk,0,@input), T.week*7)
, 106), ' ', '-')
FROM
(VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7),(8))AS T(week)
这应该是您本周的列名别名
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, datediff(week, 0, getdate()), 0),106);
然后别名下个星期
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 1,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 2,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 3,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 4,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 5,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 6,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 7,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 8,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 9,dateadd(week, datediff(week, 0, getdate()), 0)),106);
您可以使用此表达式获取开始日期位于第一周的一周中的星期一:
=Dateadd(DateInterval.Day,
(0 * 7) + 1 - DatePart(DateInterval.Weekday, Parameters!startDate.Value, FirstDayOfWeek.Monday),
Parameters!startDate.Value)
第二周:
=Dateadd(DateInterval.Day,
(1 * 7) + 1 - DatePart(DateInterval.Weekday, Parameters!startDate.Value, FirstDayOfWeek.Monday),
Parameters!startDate.Value)
等等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.