有没有一种优雅的方法可以将hive中格式为“1999年3月28日”的“出生日期”列转换为“1999年3月28日”?
我使用下面的查询来处理这些,对于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
3条答案
按热度按时间tktrz96b1#
gzszwxb42#
我也有类似的问题。我用这个来解决它:
在我的情况下,日期的格式是ddmmmyy(1993年3月24日),我没有你提到的空值的问题。但我确实对未来的出生日期有意见。
因为这是一个迟来的答案,我想你已经解决了这个问题,但它可能会帮助其他用户。
lpwwtiir3#
您可以使用此查询: