我正在尝试将csv文件中的数据插入到配置单元表中,其中csv文件中的日期格式为“mm/dd/yyyy”、“mm-dd-yyyy”,必须将其插入到配置单元表中数据类型为“date”的列中,即“yyyy-mm-dd”。
首先,我尝试从csv文件中加载数据到一个表中,该表的数据类型为字符串。然后,我尝试将相同的数据插入到数据类型为date的新表中,但我只能在一种格式的表中加载日期,而另一种格式则存储为null。
create table sample1(order_id int, order_dt string);
load data local inpath "\home\cloudera\data.txt" into table sample1;
create table sample2(order_id int, order_dt date);
insert into table sample2 select order_id,
to_date(from_unixtime(unix_timestamp(order_dt,'mm/dd/yyyy'),'yyyy-mm-dd'))
from sample1;
csv文件:
订单号订单日期
1 10/27/2016
2 10/27/2018
3 11/23/2016
4 09-23-2013
5 08-20-2010
6 05-13-2017
7 02/15/2009
输出时间:
从样本2中选择*;
1 2016-10-27
2 2018-10-27
3 2016-11-23
4空
5空
6空
7 2009-02-15
在这里,我得到空的其他日期格式。
1条答案
按热度按时间s1ag04yj1#
你可以用
COALESCE
在这里工作。如果第一个to_date
函数返回null,然后它将执行第二个参数,您可以通过这种方式传递任意数量的模式。