我正在尝试将HIVE中的Julian日期转换为日历日期,例如0167017。我的例子应该转换为1967-01-17(01应该变成19,67被认为是67年,017被认为是17年。我应该使用什么样的hive日期格式来实现这个目标?
我试过这种格式,但没有用。选择 from_unixtime(unix_timestamp(' 0167121',' CCYYDDD'));
答案 0 :(得分:0)
如果01应该变为19然后02 = 20,依此类推,对吧?然后将01转换为19,将其与字符串的其余部分连接起来并应用yyyyDDD格式:
hive> select to_date(from_unixtime(unix_timestamp(concat(18+cast(substr('0167017',1,2)as int),substr('0167017',3)),'yyyyDDD')));
OK
1967-01-17
Time taken: 0.07 seconds, Fetched: 1 row(s)
如有必要,请使用to_date()
或substr
删除'00:00:00'