sql >> Databáze >  >> RDS >> Mysql

Import MySQL CSV:hodnota data a času

Datum ve vašem datovém souboru je již ve formátu, kterému MySQL nativně rozumí. Je to jen uzavřeno do dvojitých uvozovek. Musíte sdělit LOAD DATA INFILE jak zacházet s uvozovkami. Zkuste něco takového:

LOAD DATA LOCAL INFILE 'myData.csv'
INTO TABLE equity_last_import
FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY ','
LINES TERMINATED BY '\n'
(equity,last,last_date)

Aktualizace:

Protože jste řekli, že to nefunguje, vytvořil jsem testovací tabulku a ověřil jsem, že to funguje. Tady je důkaz:

Zvýraznil jsem vaše data csv z otázky a vložil je do nového souboru s názvem myData.csv v /tmp mého systému složka. Poté jsem se připojil k mysql konzoli, přepnul na test databázi a spustil následující:

mysql> create table equity_last_import (equity int, last decimal(10,2), last_date datetime) engine=innodb;
Query OK, 0 rows affected (0.02 sec)

mysql> LOAD DATA LOCAL INFILE '/tmp/myData.csv'
    -> INTO TABLE equity_last_import
    -> FIELDS OPTIONALLY ENCLOSED BY '"' TERMINATED BY ','
    -> LINES TERMINATED BY '\n'
    -> (equity,last,last_date);
Query OK, 10 rows affected (0.00 sec)
Records: 10  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from equity_last_import;
+--------+--------+---------------------+
| equity | last   | last_date           |
+--------+--------+---------------------+
|   4108 |  48.74 | 2013-09-16 16:15:04 |
|   4249 |   8.10 | 2013-09-16 16:15:04 |
|   4197 |   3.81 | 2013-09-16 17:20:00 |
|   4139 |  26.81 | 2013-09-16 16:15:04 |
|   4218 |  24.83 | 2013-09-16 17:20:00 |
|   4260 |  79.72 | 2013-09-16 16:15:04 |
|   4270 | 450.12 | 2013-09-16 17:20:00 |
|   4242 |  30.38 | 2013-09-16 16:15:04 |
|   4193 |   1.42 | 2013-09-16 16:15:04 |
|   4134 |   3.77 | 2013-09-16 16:15:04 |
+--------+--------+---------------------+
10 rows in set (0.00 sec)

Vidět? Funguje to perfektně.

Další aktualizace:

Uvedli jste, že se vám nyní zobrazuje následující chyba:

Out of range value for column 'last_date' at row 1

Má váš soubor CSV záhlaví? Pokud ano, možná budete chtít přidat IGNORE 1 LINES do vašeho LOAD DATA INFILE příkaz, který MySQL řekne, že má přeskočit záhlaví.



  1. Rychlost dotazu na základě pořadí sloupců

  2. Hibernate nemohl načíst SequenceInformation z databáze

  3. Časové razítko s přesností na milisekundy:Jak je uložit v MySQL

  4. Python Postgres psycopg2 ThreadedConnectionPool vyčerpán