有沒有一種優雅的方式將蜂巢中的「出生日期」列轉換爲格式如「28-Mar-99」到「1999-03-28」?Hive如何將日期字符串只轉換爲日期格式?
我用下面的查詢來處理這些,它適用於2000年以後的日期,但對於2000年以前的日期,它給出NULL或20XX。
select a.d_cancel,
from_unixtime(unix_timestamp(a.d_cancel ,'dd-MMM-yy'), 'yyyy-MM-dd') as new_date
from test_table a;
d_cancel new_date
0 12-Apr-07 2007-04-12
1 31-Dec-99 NULL
2 20-Sep-98 2098-09-20
如何判斷99年3月28日是2000年之前還是之後? – jarlh
爲什麼我想問這些問題呢是我需要處理的數據集中有很多日期類似這些。從我的理解到數據集,99年3月28日意味着28-Mar-1999。如果我想獲得2099年3月28日,上面的查詢應該能夠正確地得到它。 – Gavin
你怎麼知道99年3月28日意味着1999年3月28日?可能你有一些認識年的規則?只要實施它們。像這樣:'當cast(substr(your_date,8,2)爲int)> $ this_year then 19 else 20以sentury'結尾的情況。注意:只有你知道你的規則。如果您的日期可能在將來和過去一樣,那麼信息已經丟失,無法恢復 – leftjoin