一张表的数据字段为三个  ID,begindate  enddate
ID    begindate                    enddate                     计算时差为enddate-begindate
1     2010-10-07 07:50:30          2010-10-07  17:20:10          0天09:29:40
2     2010-10-08 09:20:15          2010-10-09  10:30:20          1天01:10:05 
3     2010-10-09 08:10:10          2010-10-11  15:20:30          2天07:10:20
4     2010-10-10 07:10:06          2010-10-10  15:50:30          0天08:40:24
                       
                                                           合计:4天02:40:29怎么可以用sql 语句求出合计数 4天02:40:29 ????
哪个高手知道,还望赐教,感激不尽!

解决方案 »

  1.   

    select DATE_FORMAT(FROM_UNIXTIME(sum(UNIX_TIMESTAMP(enddate)-UNIX_TIMESTAMP(begindate))),'%d天%H:%i:%s') 
    from 一张表
      

  2.   


    create table Ttime(ID int, begindate datetime, enddate datetime);
    insert into tTime values(
    1, '2010-10-07 07:50:30', '2010-10-07 17:20:10'), 
    (2 ,'2010-10-08 09:20:15', '2010-10-09 10:30:20'),   
    (3 ,'2010-10-09 08:10:10' ,'2010-10-11 15:20:30'),  
    (4, '2010-10-10 07:10:06' ,'2010-10-10 15:50:30')  
    select * from ttime;select FLOOR(sum(TIMESTAMPDIFF(second,begindate,enddate)) / (24*60*60)) as 'tian' into @T from ttime;
    select FLOOR((sum(TIMESTAMPDIFF(second,begindate,enddate)) mod (24*60*60)) /(60*60)) as 'xiaoshi' into @H from ttime;
    select floor((sum(TIMESTAMPDIFF(second,begindate,enddate))-@T*24*60*60-@h*60*60) /60 ) as 'fenzhong' into @M from ttime;
    select floor(sum(TIMESTAMPDIFF(second,begindate,enddate))-@T*24*60*60-@h*60*60-@M*60) as 'miao' into @S from ttime;select concat(@T,'天',@H,'小时',@M,'分钟',@S,'秒');
      

  3.   


    mysql>
    mysql> select concat(@T,'天',@H,'小时',@M,'分钟',@S,'秒');
    +---------------------------------------------+
    | concat(@T,'天',@H,'小时',@M,'分钟',@S,'秒')           |
    +---------------------------------------------+
    | 4天2小时30分钟29秒                                    |
    +---------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  4.   

    是 4天02:30:29 ?
    SELECT ROUND(SUM(nt)/(24*3600),0) AS aday,
    FLOOR((SUM(nt)- ROUND(SUM(nt)/(24*3600),0)*24*3600)/3600) AS ahour,
    FLOOR((SUM(nt)-ROUND(SUM(nt)/(24*3600),0)*24*3600-FLOOR((SUM(nt)- ROUND(SUM(nt)/(24*3600),0)*24*3600)/3600)*3600)/60) AS AMIN,
    SUM(NT)-(ROUND(SUM(nt)/(24*3600),0)*24*3600+FLOOR((SUM(nt)- ROUND(SUM(nt)/(24*3600),0)*24*3600)/3600)*3600+(FLOOR((SUM(nt)-ROUND(SUM(nt)/(24*3600),0)*24*3600-FLOOR((SUM(nt)- ROUND(SUM(nt)/(24*3600),0)*24*3600)/3600)*3600)/60))*60 ) AS Asec
     FROM (
    SELECT *,
    HOUR(TIMEDIFF(enddate,begindate))*3600+MINUTE(TIMEDIFF(enddate,begindate))*60+SECOND(TIMEDIFF(enddate,begindate)) AS nt
    FROM qt2) a;
      

  5.   

    http://blog.csdn.net/weinianjie1/archive/2010/10/13/5939443.aspx
    我的博客,简单整理了一下mysql的日期和时间,希望对你有用
      

  6.   

    那个啥,我只能说看的很无语。楼主,你要是这种问题都问别人,你别编程了,去做公务员算了。不看手册的?不google,baidu的?随便哪一种都能让你很容易找到答案。