谢谢在线等答案 

解决方案 »

  1.   


    declare @date datetime
    set @date='2008-01-01'
    declare @t table(date datetime)
    while(datediff(dd,@date,'2008-12-31')>=0)
    begin
    insert into @t select @date
    set @date=dateadd(dd,1,@date)
    end
    select * from @t where datepart(dw,date)=5
      

  2.   

    SQL2000
    ----------
    declare @i int 
    declare @d datetime 
    set @i=1
    set @d='2007-01-01'
    Create table #a (Dat datetime)
    while year(@d)=2007
      begin 
      insert into #a values (@d )
      set @i=@i+1 
      set @d=dateadd(day,1,@d)
      end 
    select *,datepart(dw,Dat) as a from #a where  datepart(dw,Dat) =5 drop table #a
      

  3.   

    DECLARE @Date datetime
    DECLARE @StartDate datetime
    DECLARE @EndDate datetime
    DECLARE @WeekDay int
    DECLARE @i intSET DATEFIRST 7 --设置每周的第一天 
    SET @StartDate='2008-01-01' --统计的开始日期
    SET @EndDate='2008-12-31' --统计的结束日期
    SET @WeekDay=5 --根据实际的@@DATEFIRST而定,一般默认是7,如 @StartDate='2008-01-01'时候, @WeekDay=5表示星期四
    SET @i=DATEPART(weekday,@StartDate)
    IF(@i<=@WeekDay AND @i<7)
    SET @i=@WeekDay-@i 
    ELSE IF(@i<=@WeekDay AND @i=7)
    SET @i=@i-@WeekDay
    ELSE
    SET @i=@@DATEFIRST-@i+@WeekDaySET @Date=DATEADD(day,@i,@StartDate)
    WHILE @Date<=@EndDate 
    BEGIN
    IF(@StartDate<=@Date) PRINT CONVERT(nvarchar(10),@Date,121)
    SET @Date=DATEADD(Week,1,@Date)
    END
    GO/*
    2008-01-03
    2008-01-10
    2008-01-17
    2008-01-24
    2008-01-31
    2008-02-07
    2008-02-14
    2008-02-21
    2008-02-28
    2008-03-06
    2008-03-13
    2008-03-20
    2008-03-27
    2008-04-03
    2008-04-10
    2008-04-17
    2008-04-24
    2008-05-01
    2008-05-08
    2008-05-15
    2008-05-22
    2008-05-29
    2008-06-05
    2008-06-12
    2008-06-19
    2008-06-26
    2008-07-03
    2008-07-10
    2008-07-17
    2008-07-24
    2008-07-31
    2008-08-07
    2008-08-14
    2008-08-21
    2008-08-28
    2008-09-04
    2008-09-11
    2008-09-18
    2008-09-25
    2008-10-02
    2008-10-09
    2008-10-16
    2008-10-23
    2008-10-30
    2008-11-06
    2008-11-13
    2008-11-20
    2008-11-27
    2008-12-04
    2008-12-11
    2008-12-18
    2008-12-25
    */
      

  4.   


    --星期天:declare @date datetime
    set @date='2008-01-01'
    declare @t table(date datetime)
    while(datediff(dd,@date,'2008-12-31')>=0)
    begin
        insert into @t select @date
        set @date=dateadd(dd,1,@date)
    end
    select * from @t where datepart(dw,date)=1