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

Pieterjan Vriends commented on HIVE-3850:
-----------------------------------------

>From the source code:

  public IntWritable evaluate(Text dateString) {

    if (dateString == null) {
      return null;
    }

    try {
      Date date = null;
      try {
        date = formatter1.parse(dateString.toString());
      } catch (ParseException e) {
        date = formatter2.parse(dateString.toString());
      }
      calendar.setTime(date);
      result.set(calendar.get(Calendar.HOUR_OF_DAY));
      return result;
    } catch (ParseException e) {
      return null;
    }
  }

  public IntWritable evaluate(TimestampWritable t) {
    if (t == null) {
      return null;
    }

    calendar.setTime(t.getTimestamp());
    result.set(calendar.get(Calendar.HOUR));
    return result;
  }

As you can see, the second evaluate() method returns the value of Calendar.HOUR 
instead of Calendar.HOUR_OF_DAY.
                
> hour() function returns 12 hour clock value when using timestamp datatype
> -------------------------------------------------------------------------
>
>                 Key: HIVE-3850
>                 URL: https://issues.apache.org/jira/browse/HIVE-3850
>             Project: Hive
>          Issue Type: Bug
>          Components: UDF
>    Affects Versions: 0.9.0
>            Reporter: Pieterjan Vriends
>
> Apparently UDFHour.java does have two evaluate() functions. One that does 
> accept a Text object as parameter and one that does use a TimeStampWritable 
> object as parameter. The first function does return the value of 
> Calendar.HOUR_OF_DAY and the second one of Calendar.HOUR. In the 
> documentation I couldn't find any information on the overload of the 
> evaluation function. I did spent quite some time finding out why my statement 
> didn't return a 24 hour clock value.
> Shouldn't both functions return the same?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to