[ 
https://issues.apache.org/jira/browse/HIVE-9357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14276449#comment-14276449
 ] 

Alexander Pivovarov commented on HIVE-9357:
-------------------------------------------

add_months function went from oracle 
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions004.htm
I put several ADD_MONTHS examples below
{code}
select to_date('14-JAN-2014') from_date, 1 months, add_months('14-JAN-2014', 1) 
res from dual union all
select to_date('31-JAN-2014') from_date, 1 months, add_months('31-JAN-2014', 1) 
res from dual union all
select to_date('28-FEB-2014') from_date, -1 months, add_months('28-FEB-2014', 
-1) res from dual union all
select to_date('28-FEB-2014') from_date, 2 months, add_months('28-FEB-2014', 2) 
res from dual union all
select to_date('30-APR-2014') from_date, -2 months, add_months('30-APR-2014', 
-2) res from dual union all
select to_date('28-FEB-2015') from_date, 12 months, add_months('28-FEB-2015', 
12) res from dual union all
select to_date('29-FEB-2016') from_date, -12 months, add_months('29-FEB-2016', 
-12) res from dual union all
select to_date('29-JAN-2016') from_date, 1 months, add_months('29-JAN-2016', 1) 
res from dual union all
select to_date('29-FEB-2016') from_date, -1 months, add_months('29-FEB-2016', 
-1) res from dual;


from_date    months res
2014-01-14     1    2014-02-14
2014-01-31     1    2014-02-28
2014-02-28    -1    2014-01-31
2014-02-28     2    2014-04-30
2014-04-30    -2    2014-02-28
2015-02-28    12    2016-02-29
2016-02-29   -12    2015-02-28
2016-01-29     1    2016-02-29
2016-02-29    -1    2016-01-31
{code}

add_month function is used in many BI projects (especially in financial 
applications (e.g. to determine 36 mo loan end date)).
>From my experience most of BI projects was implemented in Oracle.
Lots of BI projects are migrating to Hive now.

So, lots of projects depends on Oracle add_months function business logic.

as a separate activity existing hive udf date_add can be improved to be similar 
to MySQL implementation (if smbd need it)

I belive add_months udf brings lots of business value to hive because many 
companies want easier migration from oracle fo hive.
I think Oracle is used in most of enterprise big data companies.

> Create ADD_MONTHS UDF
> ---------------------
>
>                 Key: HIVE-9357
>                 URL: https://issues.apache.org/jira/browse/HIVE-9357
>             Project: Hive
>          Issue Type: Improvement
>          Components: UDF
>            Reporter: Alexander Pivovarov
>            Assignee: Alexander Pivovarov
>         Attachments: HIVE-9357.1.patch
>
>
> ADD_MONTHS adds a number of months to startdate: 
> add_months('2015-01-14', 1) = '2015-02-14'
> add_months('2015-01-31', 1) = '2015-02-28'
> add_months('2015-02-28', 2) = '2015-04-30'
> add_months('2015-02-28', 12) = '2016-02-29'



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to