Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhập CSV MySQL:giá trị datetime

Ngày tháng trong tệp dữ liệu của bạn đã ở định dạng mà MySQL có thể hiểu được. Nó chỉ được đặt trong dấu ngoặc kép. Bạn cần cho biết LOAD DATA INFILE làm thế nào để đối phó với các báo giá. Hãy thử một cái gì đó như sau:

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)

Cập nhật:

Vì bạn đã nói rằng nó không hoạt động, tôi đã tạo một bảng kiểm tra và xác minh rằng nó hoạt động. Đây là bằng chứng:

Tôi đã đánh dấu dữ liệu csv của bạn từ câu hỏi và dán vào một tệp mới có tên myData.csv trong /tmp của hệ thống của tôi thư mục. Sau đó, tôi kết nối với bảng điều khiển mysql, chuyển sang test cơ sở dữ liệu và chạy như sau:

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)

Xem? Nó hoạt động hoàn hảo.

Một bản cập nhật khác:

Bạn đã chỉ rõ rằng bạn đang gặp lỗi sau:

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

Tệp CSV của bạn có tiêu đề không? Nếu vậy, bạn có thể muốn thêm IGNORE 1 LINES vào LOAD DATA INFILE của bạn lệnh để yêu cầu MySQL bỏ qua tiêu đề.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Python MySQL sai kiến ​​trúc lỗi

  2. MySQL chọn DISTINCT theo giá trị cao nhất

  3. Docker MYSQL '[2002] Kết nối bị từ chối'

  4. CẬP NHẬT MySQL với số ngẫu nhiên từ 1-3

  5. Phân trang để hiển thị giá trị tối đa và giới hạn phần còn lại