用你的开始日期和结束日期替换本例中的开始日期和结束日期。工作原理: space 函数生成长度为返回天数的空格字符串 datediff() 函数,按空格拆分创建数组,posexplode分解数组,返回数组中元素的位置,该位置对应于天数。然后加上日期${hivevar:start_date},s.i)返回每天的日期, lest_day() 函数(自1.1版起存在于配置单元中)将每个日期转换为最后一天(需要 distinct 这里)。运行以下示例:
set hivevar:start_date=2015-07-01;
set hivevar:end_date=current_date;
select distinct last_day(date_add ('${hivevar:start_date}',s.i)) as last_date
from ( select posexplode(split(space(datediff(${hivevar:end_date},'${hivevar:start_date}')),' ')) as (i,x)
) s
order by last_date
;
1条答案
按热度按时间rggaifut1#
用你的开始日期和结束日期替换本例中的开始日期和结束日期。工作原理:
space
函数生成长度为返回天数的空格字符串datediff()
函数,按空格拆分创建数组,posexplode分解数组,返回数组中元素的位置,该位置对应于天数。然后加上日期${hivevar:start_date},s.i)返回每天的日期,lest_day()
函数(自1.1版起存在于配置单元中)将每个日期转换为最后一天(需要distinct
这里)。运行以下示例:输出: