代码之家  ›  专栏  ›  技术社区  ›  Robert

Mysql查询时间字段之间的差异为24小时

  •  -1
  • Robert  · 技术社区  · 7 年前

    如何检查两个时间字段之间的时差,24小时

    考虑我的表“tb1”,它包含以下字段id、startTime、endTime

    我们需要找出(开始时间,结束时间)有24小时的时间差之和,加上数字min作为总记录。这意味着如果总差14.44分钟。总记录数为4,我们需要在总小时数的基础上再增加4分钟

    以下查询我已经厌倦了:

    示例数据

    Select id,StartTime, EndTime from tablename;
    +----+-----------+----------+
    | id | StartTime | EndTime  |
    +----+-----------+----------+
    | 40 | 00:00:00  | 02:59:00 |
    | 41 | 04:00:00  | 05:59:00 |
    | 42 | 06:00:00  | 13:29:00 |
    | 43 | 15:00:00  | 18:29:00 |
    +----+-----------+----------+
    
    Select Sum(TIMESTAMPDIFF(EndTime, StartTime)) + 4 mintues from tablename;
    

    所需输出:

    12(in hours)
    

    提前感谢

    2 回复  |  直到 7 年前
        1
  •  1
  •   Paul Campbell Roopesh Shenoy    7 年前

    假设总是将记录数添加为分钟

    选择SEC\u TO\u TIME((SUM(TIMESTAMPDIFF(MINUTE,StartTime,EndTime))+COUNT(*)*60) 来自tablename;

    与您的数据一起返回H:M:S

    16: 00:00

    http://sqlfiddle.com/#!9/953c0c/21

        2
  •  0
  •   Koby Douek Cicero Silva Luiz Junior    7 年前
    SELECT round(sum((time_to_sec(timediff(EndTime,StartTime))/3600)+(4/60))) 
    FROM TABLE 
    limit 1;