【问题标题】:How to subtract months from date in HIVE如何从 HIVE 中的日期中减去月份
【发布时间】:2016-11-08 08:25:12
【问题描述】:

我正在寻找一种方法来帮助我从 HIVE 中的日期中减去月份

我有一个约会2015-02-01。现在我需要从这个日期减去 2 个月,结果应该是 2014-12-01

你们能帮帮我吗?

【问题讨论】:

标签: hadoop hive hdfs hiveql bigdata


【解决方案1】:

请尝试 add_months 日期函数并将 -2 作为月份传递。内部 add_months 使用 Java Calendar.add 方法,该方法支持加法或减法(通过传递负整数)。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions

【讨论】:

    【解决方案2】:

    --在Hive中,如果日期格式是YYYY-MM-DD格式,那么使用年月的差异就变得非常容易了

    from_unixtime(unix_timestamp(2015-02-01,'yyyy-mm-dd')-2*30*24*60*60, 'yyyy-MM-dd');

    【讨论】:

      【解决方案3】:
       select add_months('2015-02-01',-2);
      

      如果您需要返回结果月份的第一天:

       select add_months(trunc('2015-02-01','MM'),-2);
      

      【讨论】:

        猜你喜欢
        • 2018-03-12
        • 2021-08-25
        • 1970-01-01
        • 1970-01-01
        • 2020-08-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多