Hej ! Try it, but this this code was not tested, and I dont know what is the first day of the week in Sweden. If monday (not sunday), simply change constants in <case> block. Then wrap this code in the function Hej, Hej !Få fram datum mha år och vecka...
Kan man få fram första datumet i en viss vecka med hjälp av år och vecka?
Typ 2005-22 ska ge 2005-05-30.
mvh
RickySv: Få fram datum mha år och vecka...
declare @weeknumber int;
set @weeknumber = 10;
declare @newyear as datetime;
set @newyear = cast('2004-01-01' as datetime) --change year or build string manually
declare @newyearweekday int;
set @newyearweekday = datepart(weekday, @newyear)
declare @mydate datetime;
set @mydate = dateadd(week, @weeknumber, @newyear);
declare @delta int
set @delta =
case @newyearweekday
when 1 then 0
when 2 then -1
when 3 then -2
when 4 then -3
when 5 then -4
when 6 then -5
when 7 then -6
end
set @mydate = dateadd(day, @delta, @mydate)
print @mydateSv:Få fram datum mha år och vecka...
Dmitriy är på rätt spår, men det finns ett par saker du skall fundera över.
Det första är om ditt datum finns i ett specifikt land alltid, eller om det kan anges utifrån de förutsättningar som gäller i olika länder. I det senare fallet så får du ha en flexibel lösning som tar med detta som input.
Nästa steg är att fundera på vilken veckodag som är den första (precis som nämns ovan). I många kulturer är det antingen söndag eller måndag. I Sverige gäller måndag.
Tredje steget blir att fundera på vad som är årets första vecka. En del kulturer startar med vecka ett den 1:e januari alltid, andra utgår från första veckan med alla dagar på det nya året. En tredje variant är den första veckan där en majoritet (minst fyra) av dagarna tillhör det nya året. I Sverige gäller det sistnämnda.
Lycka till!
// JohanSv: Få fram datum mha år och vecka...
Tack för hjälpen. Jag hade tänkt att det skulle användas i en "Svensk" applikation, så jag utgår ifrån vad som gälle i Sverige.
Jag tror att ajg har hitat en lösning som kommer att fungera tack vare Era inlägg.
Tack för hjälpen !
Ricky