获取2个日期之间特定日期(例如星期一)的所有日期

时间:2015-09-17 07:17:44

标签: sql-server-2008 visual-studio-2012 reporting-services ssrs-2008-r2

考虑给出2015-01-01和2015-01-30之间的2个日期,我需要查找该时段内每个星期一和每个星期日的日期。

我有一个报告,用户需要选择一个日期范围,并从日期范围计算每个第一天和一周的最后一天并以这种方式传递。

目前SSRS的工作原理是

exec storedprocname
@BD=N'798211,798654,798664,798826',
@CGNo=N'47',
@SCGNo=N'4701,4702,4703,4704,4705,4706,4707,4708',
@ProductClass=N'1,2,4,3',
@ProductCode=N'1020',
@Region=N'772',
@FirstDayOfWeek='2014-01-06 00:00:00',
@LastDayOfWeek='2014-01-12 00:00:00'

用户选择多个星期一和星期日,报告是一周的第一天的矩阵表和矩阵

  

FirstdayOfWeek ='2014/06 / 09,2014 / 06/16'

     

LastdayOfWeek ='2014/06 / 15,2014 / 06/23'

我需要的是一个用户选择它的日期范围,它仍将以相同的方式传递

  

@startdate'2015 / 01/01'=星期四(本周一选择周一)

     

@startdate'2015 / 02/01'=星期天

1 个答案:

答案 0 :(得分:0)

您可以使用SSRS内置函数WEEKDAYNAME

=WEEKDAYNAME(DATEPART("dw", Fields!myDate.Value)

OR

=WEEKDAYNAME(DATEPART("w", Fields!myDate.Value)

您可以使用weekdayname函数过滤数据集或矩阵或在Iff表达式中使用。

如果要在SQL Server中处理它,可以使用dataname函数。