select datepart(weekday,getdate())
缺省周六是7,周日是0

解决方案 »

  1.   

    declare @weekday varchar(1)
    select @weekday=DATEPART(dw,getdate())if @weekday=7 --星期六
       or @weekday=1 --星期一
      

  2.   

    错了declare @weekday varchar(1)
    select @weekday=DATEPART(dw,getdate())if @weekday=7 --星期六
       or @weekday=1 --星期日
      

  3.   

    用函数DATEPART(WK,PAYDATE)
    可看HELP清楚DATEPART函数的应用.
      

  4.   

    select datepart(weekday,getdate())
      

  5.   

    由于 @@datefirst 可通过 set datefirst N 设定 导致 datepart(weekday,[date]) 不确定!
    so:select *
    from T
    where
    (@@datefirst + datepart(weekday,paydate)) % 7 in (0,1)OR:select *
    from T
    where
    (@@datefirst + datepart(weekday,paydate)) % 7 
           + case when (@@datefirst + datepart(weekday,paydate)) % 7 < 2 
                       then 6
                  else -1
             end in (6,7)
      

  6.   

    用 datename 又有语言问题!
      

  7.   

    --与 datefirst 无关! 语言无关!
    create  function Weekday(@Date datetime)
    returns integer
    begin
    --1: Monday , ... ,7: Sunday
    return (select (@@datefirst + datepart(weekday,@Date)) % 7 
            + case when (@@datefirst + datepart(weekday,@Date)) % 7 < 2 
                        then 6
                   else -1
              end)
    end
      

  8.   

    select datepart(weekday,getdate())
    其中:缺省周六是7,周日是1,星期一是2,一直下去。
      

  9.   

    --select datepart(weekday,getdate())
    --其中:缺省周六是7,周日是1,星期一是2,一直下去。那么就 if datepart(weekday,@paydate)=7
           print '周六'
           if datepart(weekday,@paydate)=1
           print '周日'再要不然,就SET DATEFIRST 先强制一下一周的开始是几.然后再判断