【问题标题】:How to calculate certain date using month in Hive如何在 Hive 中使用月份计算某个日期
【发布时间】:2021-09-29 12:13:15
【问题描述】:

有没有办法在 Hive 中使用当前日期来设置过去的某个日期? 我需要在当前月份的任何时候始终获取上个月的第一天,然后将其用于过滤

【问题讨论】:

    标签: sql date hive hiveql


    【解决方案1】:

    使用 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') 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 2022-11-18
      • 2016-11-08
      • 1970-01-01
      相关资源
      最近更新 更多