GBase 8a的加载日期数据时,可以指定日期的格式,比如年月日。如果1份数据里,不同的列日期格式也不一样,比如第一个date列是年月日,第二个date列是月日年,本文介绍在这种情况下的GBase 8a加载方案。
日期格式包括date,datetime,timestamp,time等几种。
目录导航
参考
日期列的格式相同时的加载,请参考
南大通用GBase 8a集群加载日期类型datetime自定义格式参数
表结构
3个列的表,其中d1和d2都是date类型。
gbase> create table td1(id int, d1 date,d2 date);
Query OK, 0 rows affected (Elapsed: 00:00:00.18)
数据
如下的td1.txt是样例数据,逗号分隔。第二个日期是年月日,第三个是月日年,格式不同。
1,2021-1-1,02-03-2021
加载方案
GBase 8a在LOAD的table_fields里,可以为每个日期列指定格式,样式如下
列名+空格+类型+空格+格式
比如
d2 date "%m-%d-%Y"'
加载语句
gbase> load data infile 'sftp://gbase:gbase1234@10.0.2.103/home/gbase/td1.txt'
into table td1
fields terminated by ','
table_fields 'id,d1 date "%Y-%m-%d",d2 date "%m-%d-%Y"';
Query OK, 1 row affected (Elapsed: 00:00:00.65)
Task 2061 finished, Loaded 1 records, Skipped 0 records
每个日期字段,都可以自定义。
总结
如果1份数据里的日期格式不同,可以通过分别设置日期格式来指定各自的格式,确保数据能正确入库。