有一个奇怪的算法,我需要返回月末日期小于或等于给定月末日期的日期。
我们实质上是在创建将在 SQL 文件中使用的动态日期范围。所以我想说,给定这个日期 20200315,将所有比给定日期更短的月末日期返回给我,但在 2019 年 9 月停止。另外,请忽略 2019 年 10 月。
所以给定 20200331 你会返回......
20200331
20200229
20200131
20191231
20191130
20190930
如果给我 20200731 它会返回......
20200731
20200630
20200531
20200430
20200331
20200229
20200131
20191231
20191130
20190930
现在这里还有一个要求。它需要限制在 12 天!!所以,如果给我 20201130 它将返回......
20201130
20201031
20200930
20200831
20200731
20200630
20200531
20200430
20200331
20200229
20200131
20191231
相信这行得通
for i in {1..11}
do
thisDate=`date -d "$(date -d ${prevDate} +%Y-%m-01) -1 day" +%Y%m%d`
if ((${thisDate} < 20190930)); then
break
elif ((${thisDate} == 20191031)); then
prevDate=${thisDate}
(( i += 1 ))
else
dateRange="${dateRange}'${thisDate}',"
prevDate=${thisDate}
(( i += 1 ))
fi
完毕