【发布时间】:2020-03-26 13:46:42
【问题描述】:
在 HiveSql 中,我有一个 yearmonth [yyyymm] 列,我需要从中减去 3 个月 例如:如果 yearmonth 是 201912 ,则需要的记录是 201909
有人可以帮我解决我需要的语法或脚本吗?
我已经尝试过 addmonths、conv() 和 reg_extract 但没有任何效果
【问题讨论】:
在 HiveSql 中,我有一个 yearmonth [yyyymm] 列,我需要从中减去 3 个月 例如:如果 yearmonth 是 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
【讨论】: