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



我的输入数据格式的形式为4位数字,代表24小时的时间格式。我试图在两个这样的字段之间找到分钟数的时间差 - 预计到达时间和预定的到达时间以分钟为单位。为此,我需要将4位INT值转换为24小时的时间格式,但我无法这样做。

我尝试了无数的排列和组合,但无济于事。

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

任何帮助都将不胜感激。

这两次之间的区别是 56分钟

预计到达时间:1902( 07:02 pm (//2分钟从7:00 pm

预定到达时间:1806( 06:06 pm (//54分钟到7:00 pm

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   |
+------+--+
(t2 / 100) * 60 + t2 % 100
   - (t1 / 100) * 60 - t1 % 100
+ case when t2 < t1 then 1440 else 0 end

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

最新更新