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

beq87vna  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(360)

我的输入数据格式是4位数字,代表24小时制。我试图找出两个这样的字段之间的时间差(以分钟为单位)-预计到达时间和计划到达时间(以分钟为单位)。为此,我需要将4位int值转换为24小时格式,但我不能这样做。
我试过无数的排列和组合,但都没有用。
预计到达时间:1902年
预计到达时间:1806
预期结果:56
任何帮助都将不胜感激。

iqxoj9l9

iqxoj9l91#

这两个时间差是56分钟。
预计到达时间:1902(07:02 pm)//7:00起2分钟
预定到达时间: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   |
+------+--+
ddhy6vgd

ddhy6vgd2#

(t2 / 100) * 60 + t2 % 100
   - (t1 / 100) * 60 - t1 % 100
+ case when t2 < t1 then 1440 else 0 end

我假设这两个时间可以跨越午夜。

相关问题