SQL Server,在两个日期之间获取所有星期一

时间:2016-10-20 04:50:17

标签: sql-server reporting-services visual-studio-2015 sql-server-2012

使用其他question的建议:

SSRS中工作得非常好,但在尝试将其用作查询以创建DateFrom报告的数据集时,我收到以下错误:

  

类型不在锚和列中的递归部分之间匹配   " DT"递归查询" CTE"。

DateToDate/Time字段是数据类型{{1}}的参数,所以我不知道它为什么不起作用。

1 个答案:

答案 0 :(得分:0)

我会这样建议,

首先,使用下面的SQL Query

创建数据集
DECLARE @DateFrom DATE;
DECLARE @DateTo DATETIME;

DECLARE @DateCollection TABLE(DateValue DATETIME)
WHILE @DateFrom <= @DateTo
BEGIN
    INSERT INTO @DateCollection (DateValue)
    VALUES ( @DateFrom )
    SET @DateFrom = DATEADD(DAY, 1, @DateFrom)
END

SELECT DateValue FROM @DateCollection WHERE  DATEPART(weekday, Datevalue) = 2
  • 这里,2表示星期一

因此,创建数据集后,您必须手动为报告添加两个参数。命名为@DateFrom和@DateTo

现在,请手动添加两个参数,请查看下图,

enter image description here

然后,从数据集中删除这两个声明变量,并忽略保存时显示的任何警报。

现在,运行并检查表数据。我检查了我的演示,它正在运行。

演示运行图片:

enter image description here

希望这会对你有所帮助!如果您需要更多帮助,请告诉我。