【发布时间】:2016-11-08 08:25:12
【问题描述】:
我正在寻找一种方法来帮助我从 HIVE 中的日期中减去月份
我有一个约会2015-02-01。现在我需要从这个日期减去 2 个月,结果应该是 2014-12-01。
你们能帮帮我吗?
【问题讨论】:
-
阅读Hive Documentation 总是一个不错的起点。
标签: hadoop hive hdfs hiveql bigdata
我正在寻找一种方法来帮助我从 HIVE 中的日期中减去月份
我有一个约会2015-02-01。现在我需要从这个日期减去 2 个月,结果应该是 2014-12-01。
你们能帮帮我吗?
【问题讨论】:
标签: hadoop hive hdfs hiveql bigdata
请尝试 add_months 日期函数并将 -2 作为月份传递。内部 add_months 使用 Java Calendar.add 方法,该方法支持加法或减法(通过传递负整数)。
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions
【讨论】:
--在Hive中,如果日期格式是YYYY-MM-DD格式,那么使用年月的差异就变得非常容易了
from_unixtime(unix_timestamp(2015-02-01,'yyyy-mm-dd')-2*30*24*60*60, 'yyyy-MM-dd');
【讨论】:
select add_months('2015-02-01',-2);
如果您需要返回结果月份的第一天:
select add_months(trunc('2015-02-01','MM'),-2);
【讨论】: