以“MM/DD/YY”格式转换日期字符串
问题描述:
我刚看到这个例子,我怎样才能解决这个问题。以“MM/DD/YY”格式转换日期字符串
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;
答
你不能用通用的方法来做,你必须测试每种可能的情况。 你可以这样做
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")
)
2位数字的年份是不足以存储19xx年和20xx年。在你的例子中,你有两个2003年和1969年 – leftjoin
我可以看到源表中日期字段的许多组合。你能提供可能的清单吗? – Ambrish
@ Ambrish ..有我们一共10000记录..不知道有多少格式将是那里..其他任何通用的方式 – Alka