Hive中yyyymmdd和yyyy-mm-dd日期之间的切换

时间:2023-03-09 21:30:08
Hive中yyyymmdd和yyyy-mm-dd日期之间的切换

以2017-12-05和20171205相互转换为例说明

方法1: from_unixtime+ unix_timestamp
--20171205转成2017-12-05
select from_unixtime(unix_timestamp('','yyyymmdd'),'yyyy-mm-dd') from dual; --2017-12-05转成20171205
select from_unixtime(unix_timestamp('2017-12-05','yyyy-mm-dd'),'yyyymmdd') from dual; 方法2: substr + concat
--20171205转成2017-12-05
select concat(substr('',1,4),'-',substr('',5,2),'-',substr('',7,2)) from dual; --2017-12-05转成20171205
select concat(substr('2017-12-05',1,4),substr('2017-12-05',6,2),substr('2017-12-05',9,2)) from dual;