起因:为了按星期统计目的数据。
   平台: delphi7.0+SqlServer2000
   方法:目前采用datepart(wk,时间)来统计,
   (select datepart(wk,时间),count(*) from TableName group by datepart(wk,时间).
    但顺便想提取该星期数的起止时间,有什么方法?

解决方案 »

  1.   

    declare @t table(date1 datetime,date2 varchar(30))
    insert into @t(date1) select '2006-11-3'
    union all select '2006-10-4'select date1,
           date2=convert(varchar(10),dateadd(day,1,dateadd(wk,datepart(wk,date1)-1,cast(year(date1) as varchar))),120)+' '+convert(varchar(10),dateadd(wk,datepart(wk,date1),cast(year(date1) as varchar)),120)
    from @t
    --例子
      

  2.   

    --开始时间
    select dateadd(day,datepart(wk,时间) * 7 - 6,cast(year(时间) as varchar)+'-01-01')
    --结束时间
    select dateadd(day,datepart(wk,时间) * 7,cast(year(时间) as varchar)+'-01-01')
      

  3.   

    select datepart(wk,时间),count(*)
    select dateadd(day,datepart(wk,时间) * 7 - 6,cast(year(时间) as varchar)+'-01-01') as 开始时间,
    select dateadd(day,datepart(wk,时间) * 7,cast(year(时间) as varchar)+'-01-01') as 结束时间
    from TableName group by datepart(wk,时间)
      

  4.   

    select datepart(wk,时间),
           count(*),
           所在周=convert(varchar(10),dateadd(day,1,dateadd(wk,datepart(wk,时间)-1,cast(year(时间) as varchar))),120)+' '+convert(varchar(10),dateadd(wk,datepart(wk,时间),cast(year(时间) as varchar)),120)
    from TableName 
     group by datepart(wk,时间).
      

  5.   

    "服务器: 消息 8120,级别 16,状态 1,行 1
    列 'data.时间' 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY 子句中。"上面给的几个方法不加“group by”单独运行都行,但有group by就出现如上提示。看来一条语句不能完成上述要求?