求判断某天是当月的第几周的函数:
每周从周一开始,周日结束,
如2010-11-06返回1,
2010-11-07返回1,
2010-11-08返回2,
2010-11-27返回4,
2010-11-28返回5

解决方案 »

  1.   

    --计算给定日期是当月的第几周
    DECLARE @Date DATETIME;
    SET @Date = GETDATE()
    --思路,给定日期是当年的第几周-给定日期所在月第一天是当年的第几周
    SELECT DATEPART(WEEK,@Date)-DATEPART(WEEK,DATEADD(MONTH,DATEDIFF(MONTH,0,@Date),0))+1 [WeekOfMonth]
    SELECT DATEPART(WEEK,@Date)-DATEPART(WEEK,DATEADD(DAY,1-DATEPART(DAY,@Date),@Date))+1 [WeekOfMonth]
    GO
      

  2.   


    select cast(datename(week,getdate()) as int)+1
    -cast(datename(week,(select dateadd(day,-(SELECT DATEPART(day, getdate())),getdate()))) as int)
      

  3.   

    新手写的,很容易看懂DECLARE @Date DATETIME
    SET @Date = GETDATE()
    select case when datepart(dd,GETDATE())/7>0 then datepart(dd,GETDATE())/7+1
        when datepart(dd,GETDATE())/7=0 then datepart(dd,GETDATE())/7 end Weekofmonth