[英]HIVE - Format of time difference
我想计算事件之间的差异。 这两个事件都以毫秒为单位存储在UNIX_TIMESTAMP中。
这是一个示例:1464740049000
如何转换时差并将其格式化为小时。
我尝试了几件事,例如datediff和/或timestamp(event1)-timestamp(event2)。
我想要的是
从测试数据中选择timestamp(e1.time),timestamp(e2.time),e1.time-e2.time作为Time_Diff;
Time_Diff的格式应为小时,分钟,秒...如何获取此格式? 预先感谢彼得
如果您仅对小时感兴趣,则无需使用unixtimestamp转换为timestamp,而只需使用SQL Mathematical函数
select (time2 - time1)/(1000 * 60 * 60) as hours from mytable;
如果差异少于24小时,则可以使用以下方法:
[localhost:21000] > select from_unixtime(1392394861 - 1392394860, 'HH:mm:ss');
+----------------------------------------------------+
| from_unixtime(1392394861 - 1392394860, 'hh:mm:ss') |
+----------------------------------------------------+
| 00:00:01 |
+----------------------------------------------------+
如果差异可能超过24小时,则以下丑陋的表达式将解决问题:
[localhost:21000] > select concat(cast(floor((1392394861 - 1392300000)/60/60) as string), from_unixtime(1392394861 - 1392300000, ':mm:ss'));
+----------------------------------------------------------------------------------------------------------------------+
| concat(cast(floor((1392394861 - 1392300000) / 60 / 60) as string), from_unixtime(1392394861 - 1392300000, ':mm:ss')) |
+----------------------------------------------------------------------------------------------------------------------+
| 26:21:01 |
+----------------------------------------------------------------------------------------------------------------------+
或者,如果您希望使用带有明确日期的格式:
[localhost:21000] > select concat(cast(floor((1392394861 - 1392300000)/60/60/24) as string), " days and ", from_unixtime(1392394861 - 1392300000, 'HH:mm:ss'));
+-------------------------------------------------------------------------------------------------------------------------------------------+
| concat(cast(floor((1392394861 - 1392300000) / 60 / 60 / 24) as string), ' days and ', from_unixtime(1392394861 - 1392300000, 'hh:mm:ss')) |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| 1 days and 02:21:01 |
+-------------------------------------------------------------------------------------------------------------------------------------------+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.