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
Last activity: Nov 21, 2024, 08:30 PM