代码之家  ›  专栏  ›  技术社区  ›  Ankush Agrawal

无法将4位int值转换为24小时时间格式

  •  -1
  • Ankush Agrawal  · 技术社区  · 8 年前

    我的输入数据格式为4位数,表示24小时时间格式。我正在尝试查找两个这样的字段之间的时间差(以分钟为单位),即预期到达时间和计划到达时间(以分钟为单位)。为此,我需要将4位int值转换为24小时时间格式,但我无法这样做。

    我尝试过无数的排列和组合,但都没有用。

    • 预计到达时间:1902
    • 计划到达时间:1806
    • 预期结果:56

    我们将非常感谢您的帮助。

    2 回复  |  直到 8 年前
        1
  •  2
  •   notNull    8 年前

    这两次的区别是 56分钟

    预计到达时间:1902( 下午07:02 )//下午7:00后2分钟

    计划到达时间:1806( 下午06:06 )//54分钟到晚上7:00

    select (unix_timestamp('1902','HHmm') - unix_timestamp('1806',"HHmm"))/60;
    +-------+--+
    |  _c0  |
    +-------+--+
    | 56.0  |
    +-------+--+
    

    (或)

    select int((unix_timestamp('1902','HHmm') - unix_timestamp('1806',"HHmm"))/60);
    +------+--+
    | _c0  |
    +------+--+
    | 56   |
    +------+--+
    
        2
  •  0
  •   shawnt00    8 年前
    (t2 / 100) * 60 + t2 % 100
       - (t1 / 100) * 60 - t1 % 100
    + case when t2 < t1 then 1440 else 0 end
    

    我假设这两次可以跨越午夜。

    推荐文章