sql >> Databasteknik >  >> RDS >> Mysql

Hur man laddar datumdata i MySQL när man använder LOAD DATA

Din formatsträng för STR_TO_DATE() är ogiltig. Timmar i dina exempeldata har 24-timmarsformat (%H eller %k ) istället för 12 timmar (%h ). Du kan se alla möjliga datumformatspecifikationer här .

Ändra

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

till

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

Ditt uttalande kan se ut så här

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');

Efter att ha laddat med dina exempeldata

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)


  1. MySQL Atomic UPDATE i InnoDB vs MyISAM

  2. Hur genererar man automatiskt identitet för en Oracle-databas genom Entity-ramverket?

  3. SQLite JSON_REMOVE()

  4. Hur man använder GOTO i SQL Server