【问题标题】:Time difference in sql. Totaltime over midnightsql中的时差。午夜的总时间
【发布时间】:2013-11-29 06:34:27
【问题描述】:

这里真的需要一些帮助。

有一个包含以下列的表格

开始日期、停止日期、开始时间、停止时间、总时间

它们的格式为YYYY-MM-DDHH-MM

我如何获得HH-MM 格式的totaltime(有时开始和停止经过午夜)

谢谢

【问题讨论】:

    标签: mysql sql datetime


    【解决方案1】:

    使用 TIMEDIFF 将返回 00:00:00.00000 // 这种格式

    TIMEDIFF('2013-11-20 12:01:00', '2010-11-19 12:00:00')
    

    或者你可以隐蔽到秒

    TIME_TO_SEC(TIMEDIFF('2013-11-20 12:01:00', '2010-11-19 12:00:00'))
    

    【讨论】:

      【解决方案2】:

      试试这个方法

      UPDATE table1
         SET totaltime = TIMEDIFF(ADDTIME(stopdate, stoptime), 
                                  ADDTIME(startdate, starttime));
      

      这里是SQLFiddle演示

      更新:这是一个午夜时间的例子。

      mysql> 创建表 Table2 -> (`startdate` 日期, -> `stopdate` 日期, -> `starttime` 时间, -> `stoptime` 时间, -> `totaltime` 时间); 查询正常,0 行受影响(0.02 秒) mysql> 插入表 2 值 -> ('2013-11-27', '2013-11-28', '11:00', '00:00', NULL), -> ('2013-11-27', '2013-11-28', '00:00', '15:00', NULL), -> ('2013-11-27', '2013-11-28', '00:00', '00:00', NULL); 查询正常,3 行受影响(0.01 秒) 记录:3 重复:0 警告:0 mysql>更新表2 -> 设置总时间 = TIMEDIFF(添加时间(停止日期,停止时间), -> 添加时间(开始日期,开始时间)); 查询正常,3 行受影响(0.01 秒) 匹配行:3 更改:3 警告:0 mysql> SELECT * FROM table2; +------------+------------+------------+----------+ ------------+ |开始日期 |停止日期 |开始时间 |停止时间 |总时间 | +------------+------------+------------+----------+ ------------+ | 2013-11-27 | 2013-11-28 | 11:00:00 | 00:00:00 | 13:00:00 | | 2013-11-27 | 2013-11-28 | 00:00:00 | 15:00:00 | 39:00:00 | | 2013-11-27 | 2013-11-28 | 00:00:00 | 00:00:00 | 24:00:00 | +------------+------------+------------+----------+ ------------+ 3 行一组(0.00 秒)

      【讨论】:

      • 这个更新对我来说效果很好,但如果过了午夜,我得到的总数是负数
      • @user3048250 使用timediff( later_date_time, former_date_time ) 得到肯定的结果。
      • 发生了奇怪的事情,当超过 00.00 时,它会从 starttime 中减去 stoptime 并使其变为负数。
      • @user3048250 查询本身非常好。负值告诉您停止日期时间
      • 感谢所有帮助。我的表中有错误的类型:P 现在它工作正常。再次让你们所有人失望。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      相关资源
      最近更新 更多