Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL CSV आयात:डेटाटाइम मान

आपकी डेटा फ़ाइल में दिनांक पहले से ही एक प्रारूप में है जिसे MySQL को मूल रूप से समझना चाहिए। यह सिर्फ दोहरे उद्धरण चिह्नों में संलग्न है। आपको बताना होगा LOAD DATA INFILE उद्धरणों से कैसे निपटें। कुछ इस तरह का प्रयास करें:

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)

अपडेट करें:

चूंकि आपने कहा है कि यह काम नहीं करता है, इसलिए मैंने एक परीक्षण तालिका बनाई और सत्यापित किया कि यह काम करती है। ये रहा सबूत:

मैंने प्रश्न से आपके सीएसवी डेटा को हाइलाइट किया है और myData.csv नामक एक नई फ़ाइल में चिपकाया है मेरे सिस्टम के /tmp . में फ़ोल्डर। फिर मैंने mysql कंसोल से कनेक्ट किया, test . पर स्विच किया डेटाबेस और निम्नलिखित को चलाया:

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)

देखो? यह पूरी तरह से काम करता है।

एक और अपडेट:

आपने निर्दिष्ट किया है कि अब आपको निम्न त्रुटि मिल रही है:

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

क्या आपकी CSV फ़ाइल में हेडर है? यदि ऐसा है, तो आप IGNORE 1 LINES add जोड़ना चाह सकते हैं अपने LOAD DATA INFILE . पर MySQL को हेडर पर स्किप करने के लिए कहने का आदेश।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में IP को लॉन्ग में बदलना

  2. लोड डेटा स्थानीय इनफाइल में वर्जित... PHP

  3. MySQL:किसी अन्य फ़ील्ड के आधार पर अनुक्रम कॉलम जोड़ें

  4. MySQL DATETIME फ़ील्ड से स्ट्रिंग के साथ DATE स्ट्रिंग की तुलना करें

  5. प्रायिकता अवसर के आधार पर यादृच्छिक मान का चयन करें