v_curr=`date +%Y%m%d`
v_ld=`date -d "yesterday" +%Y%m%d`
v_tm_fd=`date +%Y%m01`
v_lm_ld=`date -d "${v_lm_fd} last day" +%Y%m%d`
v_llm_ld=`date -d "${v_lm_fd} last month last day" +%Y%m%d`
#当前日期
echo ${v_curr}
#昨天日期
echo ${v_ld}
#本月月初
echo ${v_tm_fd}
传入日期的本月初 v_first_day_m=`date -d 20210121 +%Y%m01`
#上个月月末
echo ${v_lm_ld}
#上上个月月末
echo ${v_llm_ld}
上个月月初 lm_fd=date -d "${v_lm_fd} last month" +%Y%m%d
或者(传入日期上月初)
date -d "20201125 last month" +%Y%m01
时间格式化,时间增减
rptDate=$1
rptDateFormart=`date -d "$rptDate" +"%Y-%m-%d"`
rptDatesub60=`date -d "$rptDate UTC -60 day" +"%Y%m%d"` ##T-60
v_first_day_m=`date -d "$rptDate" +%Y%m01` ##传入日期的月初
v_last_day_lm=`date -d "${v_first_day_m} last day" +%Y%m%d` ##传入日期的上月末
v_first_day_lm=`date -d "${v_first_day_m} last month" +%Y%m%d` ##传入日期的上月末
shell里面的加一个月 + 1 month 是加30天。不建议这么写 会出问题
last month这种方式也不好 不要用
还是用sql获取上一个月吧