- 先要算出日期范围的天数=结束日期-开始日期
- 把天数数组化
- 使用lateral view posexpload ,一行变多行
- 把开始日期+index
SELECT t2.start_date,t2.end_date,x,y,date_add(start_date,x) as date from (
SELECT start_date,end_date,datediff(end_date,start_date) as diff,split(space(datediff(end_date,start_date)),'') as day_num from (
SELECT '2022-06-01' as start_date, '2022-06-05' as end_date
union all
SELECT '2022-06-04' as start_date, '2022-06-11' as end_date
) t1
) t2 lateral view posexplode(day_num) t3 as x,y


这篇博客介绍了如何使用SQL进行日期范围的计算,将天数数组化并利用LATERAL VIEW和explode函数实现一行变多行的操作。示例中展示了从开始日期到结束日期的每一天,并通过date_add函数生成每一天的具体日期,适用于数据处理和分析场景。
2万+

被折叠的 条评论
为什么被折叠?



