1得到周一
select date_sub('${#date(0,0,0):yyyy-MM-dd#}',pmod(datediff('${#date(0,0,0):yyyy-MM-dd#}', '2018-08-06'), 7))
2.得到这月一号,上月一号
思路 今天日期-(今天是这月多少号-1)得到这月一号,在这基础上-1月
impala实现
得到上月一号
select from_unixtime(unix_timestamp(months_sub(date_sub(now(), dayofmonth(now())-1), 1)),"yyyy-MM-dd")
得到这月一号
select from_unixtime(unix_timestamp(months_sub(date_sub(now(), dayofmonth(now())-1), 0)),"yyyy-MM-dd")
hive实现
这月一号
date_sub(current_date,dayofmonth(current_date)-1)
上月一号
add_months(date_sub(current_date,dayofmonth(current_date)-1), -1)
下月一号
add_months(date_sub(current_date,dayofmonth(current_date)-1), 1)
按这个思路可以得到月的任意一天
待续