如何在Hive中使用月份计算特定日期



有没有办法在Hive中使用当前日期设置过去的某个日期?我需要在本月的任何时候都能得到上个月的第一天,然后用它过滤

使用add_month获取上月日期,使用TRUNC获取第一天:

select trunc(add_months(current_date,-1),'MM') --returns 2021-06-01 for current_date = 2021-07-22

如果您没有TRUNC函数,则使用add_month获取上月日期,使用substr获取"yyyy-MM",连接"-01"获取月初:

select concat(substr(add_months(current_date,-1),1,7),'-01') --returns 2021-06-01 for current_date = 2021-07-22

您还可以减去2个月,得到last_day((,再加上一天,得到上个月的第一天:

select date_add(last_day(add_months(current_date, -2)),1) --returns 2021-06-01 for current_date = 2021-07-22

还有一个更简单的方法:

select date_format(add_months(current_date, -1),'yyyy-MM-01') 

相关内容

  • 没有找到相关文章

最新更新