SQL转换周数到日期(年/月)

dan*_*mcr 4 sql t-sql sql-server

我试图将SQL-Server中的周数(例如:21)转换dd/MM格式的日期(从该周的星期一开始).

我在网上搜索但似乎找不到任何我可以使用的东西.

这是我能做的吗?

任何帮助或建议表示赞赏.

先感谢您.

bms*_*dev 8

试试这个,

declare @wk int  set @wk = 21
declare @yr int  set @yr = 2016

select dateadd (week, @wk-1, dateadd (year, @yr-1900, 0)) - 4 -
       datepart(dw, dateadd (week, @wk-1, dateadd (year, @yr-1900, 0)) - 4) + 1
Run Code Online (Sandbox Code Playgroud)

或尝试这种方式

declare @wk int  = 21

select dateadd(week,@wk-1, DATEADD(wk, DATEDIFF(wk,-1,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)), 0)) 
Run Code Online (Sandbox Code Playgroud)


And*_*yev 5

您可以执行以下操作:

declare @Week_Number int, @Year int, @Year_Start_Day date, @Week_Day date

select 
    @Week_Number = 1,
    @Year = 2016

select @Year_Start_Day = cast(@Year as nvarchar(4)) + '0101'
select @Week_Day =  dateadd(wk, @Week_Number, @Year_Start_Day)

select dateadd(dd, 1 - datepart(weekday, @Week_Day), @Week_Day)
Run Code Online (Sandbox Code Playgroud)