2017-02-21 45 views
2

一个日期我怎么能一个。减去数日期的天,有另一个日期的结果,例如:2016年1月12日 - 10 = 21/11/2016天。减去在HIVE APACHE

+0

在哪里?就像在HiveQL查询中一样? – TehTris

+1

欢迎来到SO!这里的人很兴奋,渴望帮助你解决你的问题,但帮助他们帮助你很重要。考虑构建一个[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)。这很重要,因为它显示了你已经尝试了什么,你的思考过程以及你希望达到的目标。还要考虑使用代码段的[backticks](http://stackoverflow.com/editing-help#comment-formatting),它会提高可读性。例如'41 + 1 = 42'比41 + 1 = 42更容易阅读。再次欢迎和良好技能前进:) – mbigras

回答

1

还有一个配置单元udf可以减去配置单元的天数,你有两个选择,将你的日期转换为下面的格式来使用UDF直接

yyyy-MM-dd 

,或者你可以改变你的当前日期和时间标记应用UDF,例如

date_sub(from_unixtime(unix_timestamp('12/03/2010' , 'dd/MM/yyyy')), 10) -- subs 10 days 

我希望它有帮助, 问候!

1

(日期参数)

hive> select date_sub(date '2016-12-01',10); 
OK 
2016-11-21 

(字符串参数)

hive> select date_sub('2016-12-01',10); 
OK 
2016-11-21 

DATE_SUB(日期/时间戳/串STARTDATE,TINYINT/SMALLINT/INT天)

减去开始日期的天数:date_sub('2008-12-31',1)= '2008-12-30'。在Hive 2.1.0(HIVE-13248)之前,返回类型为 字符串,因为在创建方法时不存在日期类型。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF