@@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
来明确我们的意思,那可能会很好,但不幸的是,这不是语法。
我读过这个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
来明确我们的意思,那可能会很好,但不幸的是,这不是语法。