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)
    

    更新:

    動作しないとおっしゃっていたので、テストテーブルを作成して動作することを確認しました。証拠は次のとおりです:

    質問からのcsvデータを強調表示し、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を追加することをお勧めします LOAD DATA INFILEに MySQLにヘッダーをスキップするように指示するコマンド。



    1. ワンクリックで複数のSQLServerに接続する方法(登録サーバーグループ)-SQL Server/TSQLチュートリアルパート5

    2. MS SQLで過去30分間のレコードを取得するにはどうすればよいですか?

    3. mysqlのSETユーザー定義変数はnullを返しますか?

    4. Oracleがタイムスタンプと日付を比較