获取从星期一到星期日的当前工作日

say*_*esh 8 sql-server sql-server-2008

我试过这个解决方案就像.

select dateadd(wk, datediff(wk, 0, getdate()), 0)as StartDate ,
   (select dateadd(wk, datediff(wk, 0, getdate()), 0) + 5) as EndDate
Run Code Online (Sandbox Code Playgroud)

它给出了星期一 - 星期六的结果,但是星期天它给了我下周的日子

我希望周日作为周的最后一天,周一作为周的第一天..

请帮忙...

Tim*_*ter 12

通常,用于SET DATEFIRST 1指定星期一是一周的第一天.但是,这并没有解决这个问题.请改用此语法:

SELECT DATEADD(week, DATEDIFF(day, 0, getdate())/7, 0) AS StartWeek,
       DATEADD(week, DATEDIFF(day, 0, getdate())/7, 5) AS EndWeek
Run Code Online (Sandbox Code Playgroud)

Demo

SET DATEFIRST(Transact-SQL)

1    Monday
2    Tuesday
3    Wednesday
4    Thursday
5    Friday
6    Saturday
7    (default, U.S. English) Sunday
Run Code Online (Sandbox Code Playgroud)