蜂巢朱利安日期转换

时间:2017-12-04 07:12:05

标签: hiveql julian

我正在尝试将HIVE中的Julian日期转换为日历日期,例如0167017。我的例子应该转换为1967-01-17(01应该变成19,67被认为是67年,017被认为是17年。我应该使用什么样的hive日期格式来实现这个目标?

我试过这种格式,但没有用。选择 from_unixtime(unix_timestamp(' 0167121',' CCYYDDD'));

1 个答案:

答案 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'