Diego Arias
Diego Arias

Reputation: 93

Substract Days to a Date in HIVE APACHE

How I can substract a number of days of a date, having as a result another date, for example: 01/12/2016 - 10 = 21/11/2016

Upvotes: 4

Views: 12718

Answers (2)

hlagos
hlagos

Reputation: 7957

there exist a hive udf to substract days to the hive datehttps://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions, you have two options, transform your date to the following format to use the udf directly

yyyy-MM-dd

or you can transform your current date to timestamp and apply the udf, for example

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

I hope it helps, regards!

Upvotes: 1

David דודו Markovitz
David דודו Markovitz

Reputation: 44991

(date argument)

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

or

(string argument)

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

date_sub(date/timestamp/string startdate, tinyint/smallint/int days)

Subtracts a number of days to startdate: date_sub('2008-12-31', 1) = '2008-12-30'. Prior to Hive 2.1.0 (HIVE-13248) the return type was a String because no Date type existed when the method was created.

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

Upvotes: 3

Related Questions