项目中hive库数据表是按时间进行分区的,两种格式,string '2019-10-21' ,int 20191021
当两张表分区字段类型不同进行各种join操作时,会出现类型不匹配的错误,这时就需要把两种格式统一
方案一:(将‘2019-10-20’转换为20191020,结果为string类型,需要将int 20191020转换为string)
from_unixtime(unix_timestamp('2019-10-20','yyyy-mm-dd'),'yyyymmdd') = cast(20191020 as string)
方案二:(将字符串string ‘20180905’ 转化为 字符串类型时间 ‘2019-10-20’ 结果为string类型)
from_unixtime(unix_timestamp('20180905','yyyymmdd'),'yyyy-mm-dd')
- 基本函数:unix_timestamp(String date),结果返回指定字符串日期的时间戳
SQL:
select unix_timestamp('2019-11-11 15:05:00')
查询结果:
- 基本函数:from_unixtime()时间戳转换为时间字符串
select from_unixtime(1573455900,'yyyy-MM-dd HH:mm:ss');
查询结果: