将 3 个月减去 yyyymm 月格式列配置单元 sql

Subtract 3 months to yyyymm month format column hive sql

在 HiveSql 中,我有一个年月 [yyyymm] 列,我需要从中减去 3 个月 例如:如果年月为 201912 ,则要求的记录为 201909

有人可以帮我解决我需要为此获得的语法或脚本吗?

我试过 addmonths、conv() 和 reg_extract 但是没有任何效果

add_months() 函数适用于日期。将 yyyyMM 转换为 yyyy-MM-01 日期,应用 add_months 并再次格式化为 yyyyMM

with your_table as (select '201912' as yearmonth)

select date_format(add_months(concat_ws('-',substr(yearmonth,1,4),substr(yearmonth,5,2),'01'),-3),'yyyyMM') as yearmonth 
  from your_table;

结果:

201909