Sample Header Ad - 728x90

Loading a CSV into mariadb errs out as "invalid date format"

2 votes
1 answer
327 views
I am trying to load CSV into a MariaDB . Having issues in transforming date . Here is an example file and two tables ( emp , where dob is declared as a date column and emp_varchar , where dob is declared as varchar). What am I doing wrong here? Jane@dbserver1:~$ cat empdata.csv 100,John ,02/14/1955 200,Jane ,08/22/1980 MariaDB [emptest]> LOAD DATA LOCAL INFILE 'empdata.csv' -> INTO TABLE emp -> FIELDS TERMINATED BY ',' -> OPTIONALLY ENCLOSED BY '\"' -> LINES TERMINATED BY '\n' -> IGNORE 0 ROWS -> ( -> eid, -> ename, -> dob -> ) -> SET dob = STR_TO_DATE(dob, '%m/%d/%Y'); Query OK, 2 rows affected, 4 warnings (0.001 sec) Records: 2 Deleted: 0 Skipped: 0 Warnings: 4 MariaDB [emptest]> show warnings; +---------+------+-----------------------------------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------------------------------+ | Warning | 1265 | Data truncated for column 'dob' at row 1 | | Warning | 1411 | Incorrect datetime value: '0000-00-00' for function str_to_date | | Warning | 1265 | Data truncated for column 'dob' at row 2 | | Warning | 1411 | Incorrect datetime value: '0000-00-00' for function str_to_date | +---------+------+-----------------------------------------------------------------+ 4 rows in set (0.000 sec) MariaDB [emptest]> select * from emp; +------+-----------+------+ | eid | ename | dob | +------+-----------+------+ | 100 | John | NULL | | 200 | Jane | NULL | +------+-----------+------+ 2 rows in set (0.000 sec) MariaDB [emptest]> LOAD DATA LOCAL INFILE 'empdata.csv' -> INTO TABLE emp_varchar -> FIELDS TERMINATED BY ',' -> OPTIONALLY ENCLOSED BY '\"' -> LINES TERMINATED BY '\n' -> IGNORE 0 ROWS -> ( -> eid, -> ename, -> dob -> ) -> SET dob = STR_TO_DATE(dob, '%m/%d/%Y'); Query OK, 2 rows affected (0.001 sec) Records: 2 Deleted: 0 Skipped: 0 Warnings: 0 MariaDB [emptest]> select * from emp_varchar -> ; +------+-----------+------------+ | eid | ename | dob | +------+-----------+------------+ | 100 | John | 1955-02-14 | | 200 | Jane | 1980-08-22 | +------+-----------+------------+ 2 rows in set (0.000 sec) MariaDB [emptest]>
Asked by Z.DBA (21 rep)
Nov 21, 2024, 06:39 PM
Last activity: Nov 21, 2024, 08:30 PM