@@DATEFIRST 没有按照文档中的描述返回结果

@@DATEFIRST not returning results as described in the docs

我读过这个documentation

所以我尝试了这个实验

declare @t table (test date)
insert into @t values ('20220404'), ('20220405'),('20220406'),('20220407'),('20220408'),('20220409'),('20220410')

select datename(weekday, test),
       datepart(weekday, test)
from   @t

它returns这个

COLUMN1 COLUMN2
Monday 2
Tuesday 3
Wednesday 4
Thursday 5
Friday 6
Saturday 7
Sunday 1

我检查了我的值或@@DATEFIRST

select @@DATEFIRST

它returns7

那么为什么我没有得到文档中描述的结果呢?

COLUMN1 COLUMN2
Monday 1
Tuesday 2
Wednesday 3
Thursday 4
Friday 5
Saturday 6
Sunday 7

编辑

这是我在文档中看到的

我认为您可能误解了文档。 docs for DATEFIRST 说,如您所见:

Sets the first day of the week

因此,DATEFIRST 的值决定第 被编号为 1第一个 星期几。 DATEFIRST 设置为 7,如 table 继续显示,星期日 将被视为 第一个 日星期 - 第 1 天。

使用该设置,DATEPART for weekday 将 return 1 用于任何星期日,因为星期日被视为一周中的 第一天


numbers 被用作 SET DATEFIRST 的参数可能是不幸的,因为自然会出现这种混淆。如果我们可以说 SET DATEFIRST Sunday 来明确我们的意思,那可能会很好,但不幸的是,这不是语法。