Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como carregar dados de data no MySQL ao usar LOAD DATA


Sua string de formato para STR_TO_DATE() é inválido. As horas em seus dados de amostra têm formato de 24 horas (%H ou %k ) em vez de 12 horas (%h ). Você pode ver todos os especificadores de formato de data possíveis aqui .

Mudar
%d-%b-%y %h:%i:%s

para
%d-%b-%y %H:%i:%s
         ^^

Sua declaração pode ficar assim
LOAD DATA INFILE '/path/to/temp_test.csv'
IGNORE INTO TABLE temp_test
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n' -- or '\n'
  IGNORE 1 LINES
(@c1, c2)
SET c1 = STR_TO_DATE(@c1,'%d-%b-%y %H:%i:%s');

Depois de carregar com seus dados de amostra
mysql> select * from temp_test;
+---------------------+------+
| c1                  | c2   |
+---------------------+------+
| 2012-06-07 22:50:19 | abc  |
| 2013-06-07 22:50:19 | bcd  |
+---------------------+------+
2 rows in set (0.00 sec)