declare @D datetime
set @D='2003-05-06'
select datediff(week,cast(convert(char(4),@d,120)+'-01-01' as datetime),@d)

解决方案 »

  1.   

    你这样试试。select datepart(wk,getdate())-datepart(wk,本月的第一天)
      

  2.   

    select datepart(ww,getdate()) -
     datepart(ww, convert(varchar(8), getdate(),120)+'01 00:00:00') + 1
      

  3.   

    错了要加1。
    select datepart(wk,getdate())-datepart(wk,本月的第一天)+1
      

  4.   

    如果周日不作为新的一周第一天set datefirst 1
    select datediff(ww, convert(char(8),@d,120)+'01',@d)+1
      

  5.   

    declare @D datetime
    set @D='2003-05-06'
    select datediff(week,dateadd(day,-day(@D)+1,@D),@d)
      

  6.   

    以当月一日所在周为该月第一周:
    declare @D datetime
    set @D='2003-05-06'
    select datediff(week,dateadd(day,-day(@D)+1,@D),@d)+1