我想用hql创建一个包含一年中所有日子的表。我已经尝试过这种方法:从日期范围生成天数但是hql与sql有点不同,最好的方法是什么?使用pl/hql还是使用bash脚本并导入?预期结果:
start_date = 2017-02-14; | date | |2017-02-14| |2017-02-13| |2017-02-12| |2017-02-11| |2017-02-10| |2017-02-09| |2017-02-08| |2017-02-07| ....
谢谢
ipakzgxi1#
使用 bash 以及更早的测试开始日期:
bash
start_date="2014-02-14" days=$((($(date -u +%s) - $(date -ud $start_date +%s))/60/60/24)) (( day_end = 366 + days )) while (( days < day_end ));do date "+%Y-%m-%d" -d "$days days ago" (( days++ )) done
结果
2014-02-14 2014-02-13 2014-02-12 2014-02-11 2014-02-10 2014-02-09 2014-02-08 2014-02-07 2014-02-06 2014-02-05 2014-02-04 ... ... ... 2013-02-21 2013-02-20 2013-02-19 2013-02-18 2013-02-17 2013-02-16 2013-02-15 2013-02-14
o2rvlv0m2#
set start_date=2017-02-14; select date_sub('${hiveconf:start_date}',i) from (select 1 as n) dummy lateral view posexplode(split(space(364),' ')) p as i,x ;
2017-02-14 2017-02-13 2017-02-12 2017-02-11 2017-02-10 . . . 2016-02-20 2016-02-19 2016-02-18 2016-02-17 2016-02-16
2条答案
按热度按时间ipakzgxi1#
使用
bash
以及更早的测试开始日期:结果
o2rvlv0m2#