SQL Convert Week Number to Date (dd/MM)

后端 未结 4 2026
一向
一向 2020-12-07 02:05

I am trying to convert the week number (for example: 21) in SQL-Server to the date (from the Monday of that week) in dd/MM format.

4条回答
  •  北荒
    北荒 (楼主)
    2020-12-07 02:37

    How about this?

    DECLARE @YearNum SMALLINT = 2016;
    DECLARE  @WeekNum TINYINT=25;
    
    select 
        SUBSTRING(CONVERT(VARCHAR(10),selected_date,105),0,6) AS WeeKDate
    from 
    (select DATEADD(dd,t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i,'1970-01-01') selected_date from
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
     (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
    where YEAR(selected_date)=@YearNum
    AND DATEPART(WK,selected_date)=@WeekNum
    AND DATEPART(WEEKDAY,selected_date)=2 -- Monday
    

提交回复
热议问题