hive 中有一个自带函数 datediff 计算日期差,接受日期类型为 yyyy-MM-dd

可以查看 datediff 用法

desc function extended datediff;

hive日期相减的函数 hive 日期差值_yyyyMMdd转换

首先需要将 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