如何从HIVE中减去几个月的日期

时间:2016-07-06 10:07:48

标签: hadoop hive hdfs hiveql bigdata

我正在寻找一种方法,帮助我从HIVE日期中减去几个月

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

你们能帮助我吗?

3 个答案:

答案 0 :(得分:15)

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

如果你需要回到最后一个月的第一天:

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

- 如果日期格式为YYYY-MM-DD格式,则在Hive中,使用月份和年份的差异变得非常容易

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