本文主要是介绍Hive - 日期从整形转为Date类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在建表的时候我们常将日期字段设置为INT类型,将诸如20180601
这样的数字值来表示日期,这样在做日期比较等操作时没有问题,但是要进行某些日期计算,就要先转成日期类型才能进行计算了,怎么转换呢?
数据准备
下面在Hive中先建一个表,含有一个INT类型的日期字段,插入两行数据。
create table tb (dt INT);
insert into tb values (20180701);
insert into tb values (20180715);
转换类型
这里第一种方法是将INT
类型的日期值转成STRING
类型,用Hive内置的unix_timestamp
函数转成时间戳类型,最后将时间戳用from_unixtime
转成yyyy-MM-dd
的日期类型。
第二种就比较直接,将INT
类型的日期值转成STRING
类型,再对字符串进行截取处理,用-
拼接起来。
select dt,
from_unixtime(unix_timestamp(cast(dt as string),'yyyyMMdd'),'yyyy-
这篇关于Hive - 日期从整形转为Date类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!