以“MM / DD / YY”格式转换日期字符串

时间:2016-09-22 09:10:05

标签: hadoop hive

我刚刚看到这个例子。我怎样才能解决这个问题。

Hive Metastore包含一个名为problem1的数据库,其中包含一个名为customer的表。可自定义包含9000万条客户记录(90,000,000),每条记录都有一个生日字段。

示例数据(生日以粗体显示)

1904287 Christopher Rodriguez   Jan 11, 2003
96391595    Thomas Stewart      6/17/1969
2236067 John Nelson             08/22/54  

对于解决方案表中的每一行,将生日字段的内容替换为“MM / DD / YY”格式的日期字符串。

MM是零填充月份(01-12),
DD是零填充日(01-31),
YY是零填充的2位数年份(00-99)

select from_unixtime(unix_timestamp(doj,'MM/dd/yyyy')) from temp1;

1 个答案:

答案 0 :(得分:1)

你不能以通用的方式做,你必须测试每个可能的情况。 你可以这样做

select coalesce(
    from_unixtime(unix_timestamp(doj ,"MMM dd, yyyy"), "MM/dd/yy"),
    from_unixtime(unix_timestamp(doj ,"MM/dd/yyyy"), "MM/dd/yy"),
    from_unixtime(unix_timestamp(doj ,"MM/dd/yy"), "MM/dd/yy")
)