Hive时间标准化时间格式化,yyyyMMdd化
select to_date(from_unixtime(UNIX_TIMESTAMP('2020/6/05 05:02:01','yyy/M/dd')))
上⾯是标准化成为date类型:
格式化:from_unixtime(unix_timestamp('时间','和时间对应的数据格式'),'想要的格式')
如:select from_unixtime(unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd HH:mm:ss')  --2016-08-16 00:00:00
unix时间戳转换日期格式select from_unixtime(unix_timestamp('2016816','yyyyMdd'))          --和上⾯的结果⼀样,默认就是这种格式
Hive中只有带横杠的时间类型才可以直接⼤于⼩于号⽐较
注意:unix_timestamp前⾯数据的时间格式要和后⾯的⼀样。⽐如yyyy/MM/dd和yyyy/M/dd格式要对应上字段原本格式。后⾯的时分秒没有的话函数会忽略掉
解释
步骤⼀:unix_timestamp会得到时间戳(函数上前后格式对应)
步骤⼆:from_unixtime会得到最标准带时分秒时间
步骤三:to_date会得到标准⽇期,不带时分秒
Hive时间格式化
select from_unixtime(unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd')  --2016-08-16
标准化时间转为yyyyMMdd样式的(数据时间很可能不规范,或者变动样式) substring(regexp_replace(A.Trsf_Audit_Dt,'-',''),1,8)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。