【发布时间】:2014-01-14 18:11:10
【问题描述】:
此报告使用向下钻取按周将顶部的数据汇总到天数中。现在,我只是从日期中提取日期部分,以便我可以在表格上进行分组,它工作得很好但是,一周的第一天设置为 7,或星期日,我需要它从 1 点或星期一开始。我读过的明显解决方案是SET DATEFIRST 1 - 顺便说一下,当我尝试使用SET 时,我收到一条错误消息,说它不受支持
我读过您可以更改报告的全局设置来执行此操作 - 但我不知道在哪里并且希望能够在此查询中在本地执行此操作(如果可能)。此外,我还修改了@@DATEFIRST,但它所做的当然是报告一周的第一天是 7 点。
SELECT DATENAME(week, CAST(Date AS date)) AS week, DATENAME(dw, CAST(Date AS date)) AS day, CONVERT(date, Date, 103) AS date, FROM_NUMBER, DURATION,
TYPE_OF_CALL, ID, DATEPART(dw, CAST(Date - 1 AS date)) AS dayCode
FROM CallCenterStatsCDR
WHERE (Date BETWEEN @StartDate AND @EndDate)
GROUP BY DATENAME(week, CAST(Date AS date)), CONVERT(date, Date, 103), DATENAME(dw, CAST(Date AS date)), FROM_NUMBER, DURATION, TYPE_OF_CALL, ID,
DATEPART(dw, CAST(Date - 1 AS date))
ORDER BY Date DESC
【问题讨论】:
-
当您独立尝试设置 datefirst 时会发生什么?像这样 >>> SELECT @@DATEFIRST;设置日期优先 1;选择@@DATEFIRST;
-
SET 不允许在任何地方,SQL 不会解析
标签: tsql ssrs-2008 ssrs-2008-r2