hive 中有一个自带函数 datediff 计算日期差,接受日期类型为 yyyy-MM-dd
可以查看 datediff 用法
desc function extended datediff;
首先需要将 yyyyMMdd 转为 yyyy-MM-dd,
from_unixtime(unix_timestamp(ymd,'yyyyMMdd'),'yyyy-MM-dd')
再使用函数计算日期差
datediff(from_unixtime(unix_timestamp(end_ymd,'yyyyMMdd'),'yyyy-MM-dd'),from_unixtime(unix_timestamp(start_ymd,'yyyyMMdd'),'yyyy-MM-dd')) as diff_day