如何使用HiveQL将数据表整列的Epoch Time转换为人类可读时间格式
如何使用HiveQL将数据表整列的Epoch Time转换为人类可读时间格式
嘿,刚好之前帮同事处理过一模一样的需求!用HiveQL把整列的Epoch秒级时间戳转成你想要的日/月/年 时:分:秒格式,只需要用到内置的from_unixtime()函数就搞定了,超简单。
核心思路
Hive的from_unixtime()函数专门用来把秒级Epoch时间戳转换成人类可读的日期字符串,你只需要指定想要的输出格式就行。函数的基本语法是:
from_unixtime(epoch_timestamp, 'desired_format')
针对你需求的具体实现
看你给出的表结构(假设表名叫job_time_table),要把time列的Epoch时间转成目标格式,直接写查询语句就行:
SELECT job, from_unixtime(time, 'dd/MM/yyyy HH:mm:ss') AS human_readable_time FROM job_time_table;
如果你想直接把转换后的结果更新回原表(比如新增一列存储可读时间),可以用以下操作:
-- 先新增一列用于存储转换后的时间 ALTER TABLE job_time_table ADD COLUMN human_time STRING; -- 更新这列的值 UPDATE job_time_table SET human_time = from_unixtime(time, 'dd/MM/yyyy HH:mm:ss');
格式符说明(对应你要的格式)
dd:两位数字的日期(比如28)MM:两位数字的月份(比如06)yyyy:四位数字的年份(比如2028)HH:24小时制的小时数(比如12)mm:两位数字的分钟(比如49)ss:两位数字的秒数(比如09)
验证你的示例数据
拿你给的第一条数据1877325549来测试,执行select from_unixtime(1877325549, 'dd/MM/yyyy HH:mm:ss');,得到的结果正好是你想要的28/06/2028 12:49:09,完全匹配!
备注:内容来源于stack exchange,提问作者Sai Sasidhar
相关产品推荐
相关产品推荐

