Tanggal dalam file data Anda sudah dalam format yang seharusnya dipahami oleh MySQL. Itu hanya diapit oleh tanda kutip ganda. Anda perlu memberi tahu LOAD DATA INFILE
bagaimana menangani kutipan. Coba sesuatu seperti ini:
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)
Pembaruan:
Karena Anda mengatakan itu tidak berfungsi, saya membuat tabel pengujian dan memverifikasi bahwa itu berfungsi. Ini buktinya:
Saya telah menyoroti data csv Anda dari pertanyaan dan menempelkannya ke file baru bernama myData.csv
di /tmp
sistem saya map. Kemudian saya terhubung ke konsol mysql, beralih ke test
database dan menjalankan yang berikut:
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)
Lihat? Ini bekerja dengan sempurna.
Pembaruan Lain:
Anda telah menetapkan bahwa Anda mendapatkan kesalahan berikut sekarang:
Out of range value for column 'last_date' at row 1
Apakah file CSV Anda memiliki header? Jika demikian, Anda mungkin ingin menambahkan IGNORE 1 LINES
ke LOAD DATA INFILE
perintah untuk memberitahu MySQL untuk melewati header.