如何从 Hive 中的 'yyyy-MM' 日期格式获取上个月

How to get previous month from 'yyyy-MM' date format in Hive

我想从 Hive 中的 'yyyy-MM' 格式值中获取上个月。我尝试使用 'add_months' 但无法获取。

select add_months('2021-06', -1)

例如:我有一个字符串列的值为“2021-06”,现在我想将输出显示为“2021-05”。

请帮忙解决这个问题。

通过连接 '-01'add_months 将字符串转换为日期,使用 date_format 得到 yyyy-MM:

select date_format(add_months(concat('2021-06','-01'), -1),'yyyy-MM')

结果:

2021-05

另一种方法(使用substr代替date_format):

select substr(add_months(concat('2021-06','-01'), -1),1,7) --returns 2021-05