Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Impor CSV MySQL:nilai waktu-tanggal

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menghapus baris dari tiga tabel - kesalahan kueri

  2. skrip untuk mengubah file sql dump mysql menjadi format yang dapat diimpor ke sqlite3 db

  3. Apa cara yang baik untuk mendenormalisasi database mysql?

  4. DEADLOCK APPARENT Membuat utas darurat untuk tugas tertunda yang belum ditetapkan

  5. Bagaimana Anda bergabung di tabel yang sama, dua kali, di mysql?