Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak załadować dane dotyczące daty w MySQL podczas korzystania z funkcji LOAD DATA?

Twój ciąg formatu dla STR_TO_DATE() jest nieważny. Godziny w przykładowych danych mają format 24-godzinny (%H lub %k ) zamiast 12-godzinnego (%h ). Możesz zobaczyć wszystkie możliwe specyfikatory formatu daty tutaj .

Zmień

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

do

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

Twoje oświadczenie może wyglądać tak

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

Po załadowaniu przykładowych danych

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę zaimportować dane z CSV do MySQL?

  2. Jak wstawić wiersz w tabeli między dwoma istniejącymi wierszami w Sql

  3. Przechowuj HTML w bazie danych MySQL

  4. Indeksy MySQL 5.0 — unikatowe kontra nieunikalne

  5. które zapytanie jest lepsze i wydajniejsze - mysql