dan*_*mcr 4 sql t-sql sql-server
我试图将SQL-Server中的周数(例如:21)转换为dd/MM格式的日期(从该周的星期一开始).
我在网上搜索但似乎找不到任何我可以使用的东西.
这是我能做的吗?
任何帮助或建议表示赞赏.
先感谢您.
试试这个,
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)
您可以执行以下操作:
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)