sql-servert-sql

TSQL Calculate week number of the month


I want to calculate the week number of the month,I want to calculate the week number whether its odd or even week how can I get this in TSQL ? Thanks all!


Solution

  • This gives you the week of the date @dt within its month. There is a 2nd column that uses a CASE statement over the expression, to show either "Odd" or "Even"

    declare @dt datetime
    set @dt = GETDATE()
    
    select
        WhichWeekOfMonth = datepart(wk, @dt)
                         - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1,
        case when (datepart(wk, @dt)
                - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1) % 2 = 1
             then 'Odd' else 'Even' end