如何通过在SQL Server中选择星期数来获取开始日期和结束日期

时间:2020-09-26 04:45:57

标签: sql sql-server calendar

我面对的情况是,我必须获取特定星期编号的开始日期和结束日期。工作日从星期六开始,到星期四结束。

假设我给第40周,输出将是2020年9月26日开始,结束日期是10月01日。

我用

set datefirst 6 
select datepart(week, getdate()) WeekNo

找出星期几-星期从星期六开始。

1 个答案:

答案 0 :(得分:0)

除了星期数,您还需要包括年号:

declare @wk int  set @wk = 40
declare @yr int  set @yr = 2020

select dateadd (week, @wk-1, dateadd (year, @yr-1900, 0)) - 4 -
       datepart(dw, dateadd (week, @wk-1, dateadd (year, @yr-1900, 0)) - 4) + 1 StartDate,
    dateadd (week, @wk-1, dateadd (year, @yr-1900, 0)) - 4 -
       datepart(dw, dateadd (week, @wk-1, dateadd (year, @yr-1900, 0)) - 4) + 6 EndDate

StartDate               EndDate
2020-09-26 00:00:00.000 2020-10-01 00:00:00.000

从以下很好的答案中略作修改:SQL Convert Week Number to Date (dd/MM)