-- 计算本月的第一个星期一得问题,代码如下:select  DATEADD(wk,  DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),  0) 
-- 为什么要用6来减,有点想不明白,请指教!

解决方案 »

  1.   

    这个需要看你的set datefirst等于多少了 
      

  2.   

    set datefirst=7的话 就用6
    set datefirst=1的话 就用7
      

  3.   


    select @@datefirst-- 6  
      

  4.   


    --楼上错了,是7select @@datefirst-- 7  
      

  5.   

    dateadd(dd,6-datepart(day,getdate()),getdate())--这里得到的是每个月的6号这个日期,这一天所在的一周肯定有每个月的第一个星期一,后面的计算都是以周来计算的
      

  6.   


    -- 综合楼上小F和jimwoo的,得到结论:
    case 
       when datefirst=7 then 6号这天所在的周必有一天是星期一 
       when datefirst=1 then 7号这天所在的周必有一天是星期一  
    end