我的蜂巢表中有以下日期:
Jan 2014
Oct-13
8-Nov
8-Oct
30-Nov-11
我需要在' yyyy-MM-dd'中转换它们。格式。
我已经使用from_unixtime(unix_timestamp(change_log_date ,'yyyyMMdd'), 'yyyy-MM-dd')
来隐藏日期格式,因为我在数据中有不同的日期格式,所以如何编写通用代码来检查日期格式并将其转换为&#39 ; YYYY-MM-DD&#39 ;.
如果不存在,我需要每天/每月/每年加0。
for eg. I need to convert 8-Oct into '0000-10-08'
需要帮助
答案 0 :(得分:0)
如果您知道所有可能的日期格式,则可以使用case语句为每一行应用正确的格式:
CASE WHEN change_log_date rlike '[0-9]{2}-[a-zA-Z]{3}-[0-9]{2}'
THEN from_unixtime(unix_timestamp(change_log_date ,'yyyyMMdd'), 'yyyy-MM-dd')
WHEN change_log_date rlike --other regex
THEN -- and so on
如果您对java或python更熟悉,可以轻松编写代码并将其用作Hive function。