可以设置DATEFIRST,如下:
SET DATEFIRST 5

解决方案 »

  1.   

    不支持,就是不支持所以你应该在其他方面打主意.
    你可以用下面的语句来设置SQL第一周是星期几:SET DATEFIRST
    将一周的第一天设置为从 1 到 7 之间的一个数字。
      

  2.   

    先设:
    SET DATEFIRST 1
    再:
    DateDiff(ww, date1, date2)
      

  3.   

    --不过,这个设置对datediff是无效的,看下面的测试SET DATEFIRST 1
    select datediff(ww,'2004-8-15','2004-8-13')
    ,datepart(weekday,'2004-8-15'),datepart(week,'2004-8-15')
    ,datepart(week,'2004-8-15')-datepart(week,'2004-8-13')--结果: -1          7           33          0
    SET DATEFIRST 7
    select datediff(ww,'2004-8-15','2004-8-13')
    ,datepart(weekday,'2004-8-15'),datepart(week,'2004-8-15')
    ,datepart(week,'2004-8-15')-datepart(week,'2004-8-13')--结果: -1          1           34          1
      

  4.   

    到底SET DATEFIRST几啊?大家怎么说的不一样呢?
      

  5.   

    所以看来楼主得采用变通的方法:1.像我测试的那样:
      SET DATEFIRST 1
      datepart(week,@date1)-datepart(week,@date1)2.不改变默认设置,直接把日期减一处理
      DateDiff(ww, dateadd(day,-1,@date1),dateadd(day,-1,@date2))
      

  6.   

    SET DATEFIRST 1  --表示一周和第一天是星期一
    SET DATEFIRST 2  --表示一周和第一天是星期天
    这个设置对datediff无效,这样说明白了吧?