SQL Server默认周日为每周第一天,因而有以下输出:
这不符合我们的习惯,好在SQL Server提供了SET DATEFIRST让我们设置每周的第一天为周几。
SQL Server设置周一为每周第一天
说明:SQL Server中SET DATEFIRST默认值为7,执行select @@DATEFIRST可以查看当前值。
复制内容到剪贴板程序代码
print datepart(dw,'2013-01-05') --7,星期六
print datepart(wk,'2013-01-05') --1,第一周
print datepart(dw,'2013-01-06') --1,星期日
print datepart(wk,'2013-01-06') --2,第二周
print datepart(wk,'2013-01-05') --1,第一周
print datepart(dw,'2013-01-06') --1,星期日
print datepart(wk,'2013-01-06') --2,第二周
这不符合我们的习惯,好在SQL Server提供了SET DATEFIRST让我们设置每周的第一天为周几。
SQL Server设置周一为每周第一天
复制内容到剪贴板程序代码
SET DATEFIRST 1
print datepart(dw,'2013-01-05') --6,星期六
print datepart(wk,'2013-01-05') --1,第一周
print datepart(dw,'2013-01-06') --7,星期日
print datepart(wk,'2013-01-06') --1,第一周
print datepart(dw,'2013-01-05') --6,星期六
print datepart(wk,'2013-01-05') --1,第一周
print datepart(dw,'2013-01-06') --7,星期日
print datepart(wk,'2013-01-06') --1,第一周
说明:SQL Server中SET DATEFIRST默认值为7,执行select @@DATEFIRST可以查看当前值。