1

(他のフィールドの中でも)次のような形式の日付フィールドを持つcsvファイルがあります。

17DEC2009

mysqlimportを実行すると、他のフィールドは正しくインポートされますが、このフィールドは残ります 0000-00-00 00:00:00

この日付を正しくインポートするにはどうすればよいですか?ファイルを適切な形式にするには、最初にファイルに対してsed / awkコマンドを実行する必要がありますか?もしそうなら、それはどのようになりますか?数字の代わりに月が綴られているという事実は重要ですか?

4

3 に答える 3

5

STR_TO_DATE()を使用すると、クエリ内で文字列を適切なDATEに変換できます。日付文字列とフォーマット文字列が必要です。

手動エントリの例を確認して、正しい形式を見つけてください。

私はそれがの線に沿っているべきだと思います%d%b%Y(しかし、%bはDec代わりにのDECような文字列を生成することになっているので、それが機能するかどうか試してみる必要があります)。

于 2010-01-17T01:07:38.860 に答える
1

私は過去にこの問題を抱えていました。私がしなければならなかったのは、LOAD DATAを利用して、ここで適切な式を設定することでした-

[SET col_name = expr,...]

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

于 2010-01-17T00:55:36.863 に答える
0

同様の問題を解決するために私が取ったアプローチは次のとおりです。私のユース ケースは非常に多くの列で少し複雑でしたが、ここでは簡単に解決策を示しました。(Id int autogen, name varchar(100),DOB date) を持つ Persons テーブルがあり、CSV ファイルから数百万のデータ (name,DOB) を入力する必要があります。

  1. (varchar_DOB varchar(25)) のような名前で、persons テーブルに追加の列を作成しました。
  2. mysqlimport ユーティリティを使用してデータを列 (name,varchar_DOB) にインポートしました。
  3. str_to_date(varchar_DOB,'format') 関数を使用して DOB 列を更新する更新クエリを実行しました。
  4. これで、データが入力された DOB 列が期待されました。

double、time_stamp などの他の種類のデータ フォーマットにも同じロジックを適用できます。

于 2017-12-05T12:25:40.950 に答える