Shell打印日期范围的列表日期
2017-04-17 11:19
477 查看
1、输入两日期参数打印两日期范围内的日期列表
printRangeDate.sh
调试:
2、打印当前日期之前一段时间内的日期列表
printNDaysAgoDate.sh
调试:
3、项目中用到的实例
通过循环日期执行Hive库的Sql
exec_HiveSql.sh
printRangeDate.sh
#!/bin/bash # startdate="$1" date1=$(date -d "$1" "+%s") date2=$(date -d "$2" "+%s") date_count=$(echo "$date2 - $date1"|bc) day_m=$(echo "$date_count"/86400|bc) for ((sdate=0;sdate<"$day_m";sdate++)) do echo $(date -d "$startdate $sdate days" "+%F") done
调试:
sh printRangeDate.sh 20180101 2018-12-31 sh printRangeDate.sh 2018-01-01 2018-12-31 sh printRangeDate.sh 20180101 20181231参数格式的话没有影响;但第一个传进去的日期确定是起始日期,第二个传进去的日期是结束日期,且打印的日期列表不包括第二个传进去的日期。
2、打印当前日期之前一段时间内的日期列表
printNDaysAgoDate.sh
#!/bin/bash # count=$1 while [[ $count -ge 0 ]] do date +"%Y%m%d" -d"$count day ago" count=$(($count-1)) done
调试:
sh printNDaysAgoDate.sh 30 sh printNDaysAgoDate.sh 365只需要传入一个参数,即当前日期多少天以前。当然,可以根据需要,修改成多少天以后范围内的日期;循环的开始改成到昨天结束等。
3、项目中用到的实例
通过循环日期执行Hive库的Sql
exec_HiveSql.sh
#!/bin/bash startdate="2017-03-10" date1=$(date -d "2017-03-10" "+%s") date2=$(date -d "2017-04-11" "+%s") date_count=$(echo "$date2 - $date1"|bc) day_m=$(echo "$date_count"/86400|bc) for ((sdate=0;sdate<"$day_m";sdate++)) do pt_day=$(date -d "$startdate $sdate days" "+%F") hive -e " ALTER TABLE xx1_anthor_live_time drop if exists PARTITION(pt_day = '$pt_day'); ALTER TABLE xx1_anthor_live_time ADD IF NOT EXISTS PARTITION(pt_day = '$pt_day'); insert overwrite table xx1_anthor_live_time partition(pt_day = '$pt_day') select a1.roomid,count(*) anthor_live_time from t_log_anthor_heart_beat_v4 a1 inner join xx1_romm_list a2 on a1.roomid=a2.roomid where a1.pt_day = '$pt_day' and a1.gameid in(1355,1388) group by a1.roomid;" done
相关文章推荐
- Shell打印日期列表
- unix 下 shell 遍历指定范围内的日期
- shell遍历一个日期范围
- php获得一段时间范围内日期列表
- Shell脚本遍历一个日期范围实例
- shell遍历一个日期范围
- 输出指定日期范围内的日期列表
- Python获取时间范围内日期列表和周列表的函数
- shell脚本打印日期时间
- shell遍历一个日期范围
- 获取一段时间范围内的日期,月份 列表
- shell通过遍历输出两个日期范围内所有日期的方法
- 使用shell实现打印给定日期的日历
- shell截取指定日期的nginx log打印出来
- 记录cu上shell比赛的第6题:输入日期,打印天数
- Shell脚本遍历一个日期范围实例
- 根据年份获取周次,根据周次获取日期范围,获取当前年份,周次列表信息。
- 查询MOSS列表两个日期范围内的记录
- shell学习:文件查找与打印文件列表命令find
- 获取一段时间范围内的日期列表,一条精妙的SQL