datepart(dw,日期) =7 是週六,=1是週日

解决方案 »

  1.   

    declare @date1 varchar(10)
    declare @date2 varchar(10)
    declare @i int
    declare @j int
    set @date1='2009/04/02'
    set @date2='2009/04/30'
    set @i=datediff(dd,@date1,@date2)
    set @j=0
    while @j<=@i
     begin
         if(datepart(weekday,@date1)<>1 and datepart(weekday,@date1)<>7)
    print @date1
    set @date1 = convert(char(10),dateadd(dd,1,@date1),111)
            set @j=@j+1
     end
    /*
    2009/04/02
    2009/04/03
    2009/04/06
    2009/04/07
    2009/04/08
    2009/04/09
    2009/04/10
    2009/04/13
    2009/04/14
    2009/04/15
    2009/04/16
    2009/04/17
    2009/04/20
    2009/04/21
    2009/04/22
    2009/04/23
    2009/04/24
    2009/04/27
    2009/04/28
    2009/04/29
    2009/04/30*/
      

  2.   


    declare @tempdate datetime
    set @tempdate='2009-03-01'
    while @tempdate<'2009-04-07'
    begin 
    if datepart(dw,@tempdate) !=7 and datepart(dw,@tempdate) !=1
    print (convert(varchar(11) ,@tempdate, 111))
    set @tempdate=@tempdate+1
    end 
    ----
    2009/03/02
    2009/03/03
    2009/03/04
    2009/03/05
    2009/03/06
    2009/03/09
    2009/03/10
    2009/03/11
    2009/03/12
    2009/03/13
    2009/03/16
    2009/03/17
    2009/03/18
    2009/03/19
    2009/03/20
    2009/03/23
    2009/03/24
    2009/03/25
    2009/03/26
    2009/03/27
    2009/03/30
    2009/03/31
    2009/04/01
    2009/04/02
    2009/04/03
    2009/04/06