Hive中复杂日期格式转换

文章介绍了如何在Hive环境中将‘dd-M月-yy’格式的日期转换为‘yyyy-MM-dd’格式,通过使用from_unixtime和unix_timestamp函数实现,强调了处理‘M月’和‘-yy’之间空格的关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单记录一下今天某群友问的问题,看没人回答或回答得不好,我试了试,果然可以。

 

问题是需要将上图的日期转成“yyyy-MM-dd”格式,如:将 “12-5月 -23” 转成 “2023-05-12”,他自己试过一些函数都不行,因为我有过类似的经历,在身边的类Hive环境下尝试是可以的。

直接上代码

-- 假设待转换字段为 contract_date 

select from_unixtime(unix_timestamp(contract_date, 'dd-M月 -yy'), 'yyyy-MM-dd') 
from table_name;

-- 1、现将原始字符串按照相应的格式转成unix时间戳秒数
-- 2、再将此时间戳秒数转化为UTC时间
-- 3、特别需要注意的是,仔细看原始数据,“M月”和“-yy”之间有个空格,所以写的时候别漏了

至于“unix_timestamp”和“from_unixtime”函数的用法这里就不赘述了,大家可以自行搜索学习,如果你有比较复杂的时间格式转换需求,可以评论区交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值