A:select datetime from table where a=1
B:select datetime from table where a=2a表示类型,A,B这两条语句分别查出5个datetime类型的数据,我想让(B中的所有时间加起来-A中所有时间加起来)/5.求平均时间间隔,该怎么处理啊?求平均时间间隔多少秒。

解决方案 »

  1.   


    var
      r,r1,sec:Real;
    begin
      r:=0;
      r1:=0;
      self.ADOQuery1.Close;
      self.ADOQuery1.Connection:=self.ADOConnection1;
      self.ADOQuery1.SQL.Clear;
      self.ADOQuery1.SQL.Add('select * from table');
      self.ADOQuery1.Open;
      self.ADOQuery1.First;
      while not self.ADOQuery1.Eof do
      begin
        if self.ADOQuery1.FIeldByname('a').asinteger=1 then
          r:=r+self.ADOQuery1.FIeldByname('rq').AsDateTime;
        if self.ADOQuery1.FIeldByname('a').asinteger=2 then
          r1:=r1+self.ADOQuery1.FIeldByname('rq').AsDateTime;
        self.ADOQuery1.Next;
      end;
      sec:=abs((FloatToStr(r)-FloatToStr(r1)))*24*60*60;//这个就是秒数吧
    end;
      

  2.   


    DECLARE A DEC(18,0), B DEC(18,0)SELECT A=SUM(DATEDIFF(SS,'00:00',DATETIMECOL)) FROM TABLENAME WHERE A=1
    SELECT B=SUM(DATEDIFF(SS,'00:00',DATETIMECOL)) FROM TABLENAME WHERE A=2SELECT (A-B) / 5.0
      

  3.   

    谢谢大家,问题解决啦,方法如下:select avg(t1.dt)-avg(t2.dt) from
    (select datediff(ss,(select min(dt) from @tab),dt) dt
    from @tab where id=1) t1,
    (select datediff(ss,(select min(dt) from @tab),dt) dt
    from @tab where id=2) t2;