SQL Datepart-在星期一而不是星期天开始一周

SQL Datepart-在星期一而不是星期天开始一周,sql,sql-server-2000,datepart,Sql,Sql Server 2000,Datepart,我在使用datepart的查询中遇到了一个问题。我们一直在使用下面的查询返回最近三周的数据,但是我们最近发现corporate使用的是从周一到周日的报告周,而下面的查询默认为周日到周六。我曾经尝试过SET语言BRITISH和SET DATEFIRST 1,但我一定不能很好地掌握这些函数,因为它们不会改变我的查询结果。我应该提到的是,我们运行的是sql server 2000。如果您知道解决方案,我们将非常感谢您的帮助: declare @name varchar(50); set @name =

我在使用datepart的查询中遇到了一个问题。我们一直在使用下面的查询返回最近三周的数据,但是我们最近发现corporate使用的是从周一到周日的报告周,而下面的查询默认为周日到周六。我曾经尝试过SET语言BRITISH和SET DATEFIRST 1,但我一定不能很好地掌握这些函数,因为它们不会改变我的查询结果。我应该提到的是,我们运行的是sql server 2000。如果您知道解决方案,我们将非常感谢您的帮助:

declare @name varchar(50);
set @name = 'A name here';

SELECT week, year, CallCount, GoodCalls, CAST(CAST(GoodCalls as float)/CAST(CallCount as float)as decimal (18,4)) as NCP_perc
FROM
(SELECT TOP 3 datepart(ww, a.date_c) as week
,datepart(year, a.date_c) as year
      ,SUM(CallCount_wo_Xfer) as CallCount
      ,ROUND(SUM(CAST((CallCount_wo_Xfer*NCP_wo_Xfer)as float)),0) as GoodCalls
      FROM db1 A
      inner join db2 B
      on a.Agent = b.Name collate database_default
      inner join db3 C
      on b.id = c.id collate database_default
      where c.manager = @name
      group by datepart(year, a.date_c), datepart(ww, a.date_c)) AS T
      order by year desc, week desc
星期一是第二天,所以试试看

SET DATEFIRST 2

如果要从周一开始,Set DateFirst 2将跳过前两天 使用
Set DateFirst 1

欢迎使用堆栈溢出。OP尝试使用SET-DATEFIRST 1并报告它没有任何更改。也许还有其他问题,但不管怎样,这是没有帮助的,除非你解释OP还应该尝试什么,或者为什么这对他不起作用。