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

MYSQL以数字时间格式计算日期差

  •  0
  • Chintan7027  · 技术社区  · 7 年前

    在其中一个表中,我有两列名称 日期1 日期2 拥有 日期时间 数据类型

    我使用以下公式计算这两个日期之间的差异 timediff(date2,date1) .现在假设

    date1=2018-04-05 13:10:00 date2=2018-04-05 14:40:00

    那么这两个日期之间的差异将是 01:30:00

    我的主要问题是如何转换 H:i:s 时间到数字时间格式,如 01:30:00=1.5 01:45:00=1.75 ?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Thorsten Kettner    7 年前

    使用 time_to_sec 转换为秒。然后除以3600(每分钟60秒;每小时60分钟),得到小时数:

    select time_to_sec(timediff(timestamp '2018-04-05 14:40:00', 
                                timestamp '2018-04-05 13:10:00')) / 60 / 60;
    

    顺便说一下,您也可以使用 timestampdiff 而不是 timediff 要立即获得秒数:

    select timestampdiff(second, timestamp '2018-04-05 13:10:00',
                                 timestamp '2018-04-05 14:40:00') / 3600;
    
        2
  •  0
  •   Janek Wiśniewski    7 年前

    选择小时(timediff(date1,date2))+分钟(timediff(date1,date2))/60+秒(timediff(date1,date2))/60