我有一个CHAR类型的字段,存储如下:
12:00
1:10
2:10
3:15
请问如何对这个字段求和得出:18:35的值,因为存的都是花去的时间量,然后求和是为了得到总的花去了的时间量是多少,请大家帮帮忙啊!急急!

解决方案 »

  1.   

    通过:将时间分成两部分,第一部分*60加上第二部分得到总时间然后sum,然后再除以60得到商及余数形成你的累计时间
    你用的是什么数据库?
      

  2.   

    直接把时间转成TDateTime,TDateTime等价于double类型,就可以做加减操作。转时间,比如12:00-〉12:00:00,
    function ConvertStrToDateTime(sTime: string): TDateTime;
    var
      tmp: TDateTime;
    begin
      sTime := Trim(sTime)+':00';
      result := StrToDateTime(sTime);
    end;调用
    ConvertStrToDateTime('12:00')+ConvertStrToDateTime('1:10')+ConvertStrToDateTime('2:10')+...没有调试,以上只是思路。
     
      

  3.   

    我这里是一个数据库,现在要对这个字段求和啊,得到值后才open出来的!
      

  4.   

    oracle 中可以这样select trunc(sum(substr(ctime,1,instr(ctime,':')-1)*60+substr(ctime,instr(ctime,':')+1,length(ctime)))/60)||':'|| mod(sum(substr(ctime,1,instr(ctime,':')-1)*60+substr(ctime,instr(ctime,':')+1,length(ctime))),60) from tmp2
      

  5.   

    oracle 中可以这样在sqlserver中你做一下修改,可以写成一个函数
    select trunc(sum(substr(ctime,1,instr(ctime,':')-1)*60+substr(ctime,instr(ctime,':')+1,length(ctime)))/60)||':'|| mod(sum(substr(ctime,1,instr(ctime,':')-1)*60+substr(ctime,instr(ctime,':')+1,length(ctime))),60) from tmp2