简单记录一下今天某群友问的问题,看没人回答或回答得不好,我试了试,果然可以。
问题是需要将上图的日期转成“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”函数的用法这里就不赘述了,大家可以自行搜索学习,如果你有比较复杂的时间格式转换需求,可以评论区交流。