[
https://issues.apache.org/jira/browse/HIVE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13471395#comment-13471395
]
Mark Grover commented on HIVE-345:
----------------------------------
Presently Hive doesn't seem to provide functionality to specify the timezone
when performing date/time conversions. The pre-set timezone is used by default.
I would like to propose addition of such functionality (by means of this JIRA)
that allows users to optionally specify a timezone when performing date/time
conversions.
There are 2 ways I can think of implementing this:
1) Add an optional parameter to functions like from_unixtime and unix_timestamp
to specify the timezone to be used during conversion.
2) Create a new UDF, convert_tz with a prototype: CONVERT_TZ(dt,src_tz,dest_tz)
that will perform the timezone conversion. In this case, folks would have to
convert the argument's timezone before passing it in to unix_timestamp() or
convert the result's timezone when using from_unixtime().
Advantage of the first approach is that it provides a direct way of performing
date/time conversions with a particular timezone. Disadvantage is that there is
a risk of confusing users. For example, from_unixtime takes a 2nd optional
parameter that be used to specify the format. If we go with approach one and
make timezone third parameter, we force people to specify a format (which is a
string just like timezone) if they wish you to use the timezone parameter.
Advantage of the second approach is that it's a more generic method of
converting timezones and can potentially be used with other date/time related
UDFs. It's also similar to MySQL does (MySQL doesn't have parameters in
from_unixtime and unix_timestamp to specify timezone). Disadvantage is that
people using from_unixtime and unix_timestamp would have to make a nested UDF
call e.g. convert_tz(from_unixtime()) or unix_timestamp(convert_tz()) in order
to accomplish what they want.
Based on the above analysis, I am inclined towards the second approach (i.e.
creating a convert_tz UDF). What do you folks think? Anyone out there that
prefers approach 1 or a completely different approach?
> Extend Date UDFs to support time zone and full specs as in MySQL
> ----------------------------------------------------------------
>
> Key: HIVE-345
> URL: https://issues.apache.org/jira/browse/HIVE-345
> Project: Hive
> Issue Type: Improvement
> Components: UDF
> Affects Versions: 0.3.0
> Reporter: Zheng Shao
> Assignee: Mark Grover
>
> Most of the Date UDF in Hive now are based on String instead of Date objects,
> and they have limited functionality compared with MySQL.
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_from-unixtime
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-sub
> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff
> We should make it fully compliant with what MySQL offers.
--
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