How to convert a week number to valid Datetime

At first create a SQL Server user defined Function( like below)
CREATE function fn_week2date ( @YearNum as int , @WeekNum as int , @FirstOrLastDay bit )
RETURNS DATETIME
begin
declare @res as datetime
    if @FirstOrLastDay = 0
        SELECT @res = DATEADD(wk, DATEDIFF(wk, 6, convert( datetime , '1.1.' + convert( varchar , @YearNum) , 104 ) ) + (@WeekNum-1), 6)
    else
        SELECT @res = DATEADD(wk, DATEDIFF(wk, 5, convert( datetime , '1.1.' + convert( varchar , @YearNum) , 104 ) ) + (@WeekNum-1), 5)

return @res
end


Than you can execute the function according to your needs

  • Get the First day of given Week number and Year

    declare @d as datetime
    select @d = dbo.fn_week2date( 2010 , 20 , 0 )
    print @d

  • Get the last day of given Week number and Year
    declare @d as datetime
    select @d = dbo.fn_week2date( 2010 , 20 , 0 )
    print @d
Tags
Comments
16.08.2011
Donie
Thanks so much for that code! It saved me a lot of time. Thanks!
Leave a trace
Name *
Email *
Website
Anti SPAM * Code (2 + 1) =
Leave me a comment *
 
All comments are subject to editorial review
Post being viewed right now
Item date: 20.07.2009
Views: 1793
Item date: 18.06.2009
Views: 1167
Item date: 24.08.2009
Views: 390
Item date: 18.06.2009
Views: 661
Item date: 05.02.2009
Views: 1221
Item date: 05.02.2009
Views: 1640
Item date: 06.12.2010
Views: 1031
Item date: 08.01.2012
Views: 92
C#
Item date: 06.08.2009
Views: 8765
Item date: 14.07.2010
Views: 634