以日期 2017-12-11 (星期一) 为例

一、一般用法

select datepart(weekday, '2017-12-11')  

结果:2 

说明:由于MS SQL默认 星期日 为一个星期的第1天,所以 2017-12-11 星期一 就一个星期的第2天了。如此类推:1..7 即代表着 星期日.. 星期六 


二、将星期一设为一个星期的第1天

set datefirst 1     -- 这句将星期一设为一个星期的第1天

select datepart(weekday, '2017-12-11')

结果:1

说明:通过set datefirst 1可以将 星期一设为一个星期的第1天,所以 2017-12-11 星期一 就一个星期的第1天了。如此类推:1..7 即代表着 星期一.. 星期日了 


三、set datefirst 的用法

语法:SET DATEFIRST { number | @number_var } 

参数
number | @number_var
指示一周的第一天的一个整数。可以是下列值之一。

一周的第一天是  
1 星期一 
2 星期二 
3 星期三 
4 星期四 
5 星期五 
6 星期六 
7 星期日(默认值,美国英语)
  
说明: 
若要查看 SET DATEFIRST 的当前设置,请使用 @@DATEFIRST 函数。

SET DATEFIRST 的设置是在执行或运行时设置,而不是在分析时设置




本文转载:CSDN博客