将 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
在 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