---生成连续的天
select
date_add(start_date,pos) as dt
from
(
select
'2021-10-01' as start_date
,'2021-10-15' as end_date
)t
lateral view posexplode(split(repeat(',',datediff(end_date,start_date)),',')) tab as pos,val
;
---生成连续的小时
select
from_unixtime(t1.start_time+tab.pos*3600) as continue_time
from
(
select
unix_timestamp('2020-07-27 00:00:00') as start_time ---生成连续小时的开始时间
,unix_timestamp('2020-07-27 10:00:00') as end_time ---生成连续小时的结束时间
)t1
lateral view posexplode(split(repeat(',',cast((end_time-start_time)/3600 as int)),',')) tab as pos,val
;
---生成连续的分钟
select
from_unixtime(t1.start_time+tab.pos*60) as continue_time
from
(
select
unix_timestamp('2020-07-27 00:00:00') as start_time ---生成连续分钟的开始时间
,unix_timestamp('2020-07-27 00:15:00') as end_time ---生成连续分钟的结束时间
)t1
lateral view posexplode(split(repeat(',',cast((end_time-start_time)/60 as int)),',')) tab as pos,val
;