如何从两个纪元时间戳计算配置单元中 hh:mm:ss 的差异?

How to calculate the difference in hh:mm:ss in hive from two epoch timestamps?

我在配置单元 table T1 的两列中有两个纪元格式的时间戳。它们实际上代表了作业的开始时间和结束时间。我想计算作业 运行 的持续时间。因此,我将纪元时间转换为时间戳数据类型并减去它们。这给了我 'dd hh:mm:ss:ms' 的输出。假设输出进入 table T2 中的列 'duration',它是 ddl 中的时间戳数据类型。但是,当我将此数据写入 table T2 时,作业在 mapreduce 阶段进行到一半时出错,提示 'unknown data type: interval_day_time'。我无法在 ddl 中使用 'interval_day_time' 数据类型,因为即使那样也会给我一个错误。

还有其他办法吗?

取决于您要如何存储 "duration" 字段。 DATE_DIFF 函数可用于计算两个时间戳日期之间的天数差异。这个以天为单位的值然后可以转换为小时、分钟或秒。

好吧,我无法绕过它。所以我创建了自己的宏,它使用数学公式计算以小时、分钟和秒为单位的时间,并以字符串形式输出值。