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

Carter Shanklin commented on HIVE-12835:
----------------------------------------

Some other oddities:

{code}
hive> select cast ('2015-02-29' as date);
OK
2015-03-01
Time taken: 0.19 seconds, Fetched: 1 row(s)
hive> select cast ('2015-02-30' as date);
OK
2015-03-02
Time taken: 0.053 seconds, Fetched: 1 row(s)
hive> select cast ('2015-02-31' as date);
OK
2015-03-03
Time taken: 0.049 seconds, Fetched: 1 row(s)
hive> select cast ('2015-02-32' as date);
OK
NULL
{code}



> BC dates not properly documented / handled
> ------------------------------------------
>
>                 Key: HIVE-12835
>                 URL: https://issues.apache.org/jira/browse/HIVE-12835
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Carter Shanklin
>            Priority: Minor
>
> Minor issue IMO, but since I saw it I'm filing it to document it.
> There's something screwy with date types. Documentation says they run from 
> year 0 to year 9999 ("depending on Java support"). Tests I have done are 
> consistent with supporting BC dates, but not identifying the dates as BC 
> dates. Also there is some incorrect boundary handling. This is Hive 1.2.1 and 
> Java 1.7.0_91.
> To reproduce, create some table with 1 record and run these.
> {code}
> hive> select cast('2000-01-01' as date) - interval '2000' year from date_test;
> OK
> 0001-01-01
> {code}
> So far so good
> {code}
> Time taken: 0.067 seconds, Fetched: 1 row(s)
> hive> select cast('2000-01-01' as date) - interval '2100' year from date_test;
> OK
> 0101-01-01
> Time taken: 0.055 seconds, Fetched: 1 row(s)
> hive> select cast('2000-01-01' as date) - interval '2200' year from date_test;
> OK
> 0201-01-01
> Time taken: 0.153 seconds, Fetched: 1 row(s)
> {code}
> Consistent with BC dates, but not identified as such.
> {code}
> hive> select cast('2000-01-01' as date) - interval '9999' year from date_test;
> OK
> 8000-01-01
> Time taken: 0.062 seconds, Fetched: 1 row(s)
> hive> select cast('2000-01-01' as date) - interval '10000' year from 
> date_test;
> OK
> 8001-01-01
> Time taken: 0.056 seconds, Fetched: 1 row(s)
> hive> select cast('2000-01-01' as date) - interval '12000' year from 
> date_test;
> OK
> 001-01-01
> Time taken: 0.054 seconds, Fetched: 1 row(s)
> hive> select cast('2000-01-01' as date) - interval '14000' year from 
> date_test;
> OK
> 001-01-01
> Time taken: 0.057 seconds, Fetched: 1 row(s)
> hive> select cast('2000-01-01' as date) - interval '50000' year from 
> date_test;
> OK
> 001-01-01
> Time taken: 0.06 seconds, Fetched: 1 row(s)
> {code}
> Everything from here out collapses down to 001-01-01.



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

Reply via email to