选中一个时间,就会根据时间来找到该整个星期
如我选中今天 2007-07-16
就会出现本周的数据
          0716 0717 0718 0719 0720 0721 0722
用户名    MON  TUE  WED  THU  FRI  SUT  SUN
****      ***  ***  ***  ***  ***  ***  ***这个语法用SQL怎么写
where后面请根据这种语法写入,谢谢!!!
convert(datetime,convert(varchar(10),a.Uquotetime,120)) >= '?'

解决方案 »

  1.   

    --获取指定日期的是星期几
    create function udf_getweekday(@week_date datetime)
    returns varchar(20)
    as
    begin
    declare @i int
    declare @week_dayname varchar(20)
    set @i=0
    select @i=datepart(weekday,@week_date)
    select @week_dayname=(case when @i=1 then '星期日'
               when @i=2 then '星期一'
       when @i=3 then '星期二'
    when @i=4 then '星期三'
    when @i=5 then '星期四'
    when @i=6 then '星期五'
    when @i=7 then '星期六'
    end)
    return @week_daynameend--获取指定日期的相关的所有周日create function udf_getallweekday(@input_date datetime)
    returns varchar(8000)
    as
    begin
    declare @weekday int
    declare @i int
    declare @temp_date datetime
    declare @j int
    declare @k int
    declare @r varchar(8000)
    declare @r1 varchar(8000)
    declare @r2 varchar(8000)
    declare @r3 varchar(8000)
    set @weekday=0
    set @i=0
    set @j=0
    set @k=0select @weekday=datepart(weekday,@input_date)
    if @weekday=1 
    begin
    set @i=1
    set @temp_date=@input_date
    while(@i<=7)
    begin
    if @i!=1 
    begin
    set @temp_date=dateadd(day,1,@temp_date)
    end
    set @r=isnull(@r,'')+ substring(convert(varchar(20),@temp_date,120),1,10)+'/'+dbo.udf_getweekday(@temp_date)+','
    set @i=@i+1
    end

    end
    else if @weekday=7
    begin
    set @i=1
    set @temp_date=@input_date
    while(@i<=7)
    begin
    if @i!=1 
    begin
    set @temp_date=dateadd(day,-1,@temp_date)
    end
    set @r=isnull(@r,'')+ substring(convert(varchar(20),@temp_date,120),1,10)+'/'+dbo.udf_getweekday(@temp_date)+','
    set @i=@i+1
    end
    end
    else
    begin
        set @r2=isnull(@r2,'')+ substring(convert(varchar(20),@input_date,120),1,10)+'/'+dbo.udf_getweekday(@input_date)+','
        set @j=@weekday
        set @temp_date=@input_date
        while(@j<7)
    begin
    set @temp_date=dateadd(day,1,@temp_date)
    set @r3=isnull(@r3,'')+ substring(convert(varchar(20),@temp_date,120),1,10)+'/'+dbo.udf_getweekday(@temp_date)+','
    set @j=datepart(weekday,@temp_date) end   set @k=@weekday
       set @temp_date=@input_date
       while(@k>1)
    begin
    set @temp_date=dateadd(day,-1,@temp_date)
    set @r1=isnull(@r1,'')+ substring(convert(varchar(20),@temp_date,120),1,10)+'/'+dbo.udf_getweekday(@temp_date)+','
    set @k=datepart(weekday,@temp_date) end
       
      set @r=@r1+@r2+@r3
     
    end
      set @r=substring(@r,1,len(@r)-1)
    return @r
    end
      

  2.   

    --测试数据
    select dbo.udf_getweekday('2007-07-20')select dbo.udf_getallweekday('2007-07-20')
    希望对楼主有说帮助