[ https://issues.apache.org/jira/browse/HIVE-18304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16297676#comment-16297676 ]
Gopal V edited comment on HIVE-18304 at 12/20/17 12:14 AM: ----------------------------------------------------------- [~hengyu.dai]: please post the timezone(s) in which this gives an error? The reason Timestamp and Date disagrees is often due to timestamp adjustments. {code} for '2012-01-01' we will get 2012-01-01T08:00:00.000+0800 {code} Looks like it does +8 for one? was (Author: gopalv): [~hengyu.dai]: please post the timezone in which this gives an error? The reason Timestamp and Date disagrees is often due to timestamp adjustments. > datediff() UDF returns a wrong result when dealing with a (date, string) input > ------------------------------------------------------------------------------ > > Key: HIVE-18304 > URL: https://issues.apache.org/jira/browse/HIVE-18304 > Project: Hive > Issue Type: Bug > Components: UDF > Reporter: Hengyu Dai > Assignee: Hengyu Dai > Priority: Minor > Attachments: 0001.patch > > > for date type argument, datediff() use DateConverter to convert input to a > java Date object, > for example, a '2017-12-18' will get 2017-12-18T00:00:00.000+0800 > for string type argument, datediff() use TextConverter to convert a string to > date, > for '2012-01-01' we will get 2012-01-01T08:00:00.000+0800 > now, datediff() will return a number less than the real date diff > we should use TextConverter to deal with date input too. > reproduce: > {code:java} > select datediff(cast('2017-12-18' as date), '2012-01-01'); --2177 > select datediff('2017-12-18', '2012-01-01'); --2178 > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)