2011-11-17 26 views
11

私は初めてのCSVインポートをMySQLに行っていて、CSVの日付が31-Jan-2011の形式であることに気づきました。これを2011-01-31に変換するにはどうすればDATEデータ型に入れることができますか?最初に気になったのは、PHPが変換を行って2番目のテーブルに挿入することですが、それは正しいとは思いません。異なる日付形式のMySQLにCSVをインポートする

+0

誰かがすでにこれを解決したようです:http://stackoverflow.com/questions/5616494/how-to-convert-csv-date-format-to-into-mysql-db私は誰かがこの質問を持っている場合にそれを掲示しています。 – enchance

答えて

31

あなたは、たとえば、CSVファイルからデータをインポートする時のフォーマットを置き換えることができます -

LOAD DATA INFILE 'file_name.csv' 
INTO TABLE table_name 
FIELDS TERMINATED BY ';' 
LINES TERMINATED BY '\n' 
(id, column2, column3, @date_time_variable) -- read one of the field to variable 
SET date_time_column = STR_TO_DATE(@date_time_variable, '%d-%b-%Y'); -- format this date-time variable 

それは正しいDATETIMEデータ型に'31 -JAN-2011' のような文字列をフォーマットします。

ここをクリックしてください - LOAD DATA INFILE Syntax

+0

[this](http://dba.stackexchange.com/questions/90498/import-csv-file-into-mysql-with-custom-data-change?noredirect=1#comment162435_90498)の問題について教えてください。助けてください?ありがとう –

0
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d'); 
+------------------------------------------------+ 
| DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d') | 
+------------------------------------------------+ 
| 2009-10-04          | 
+------------------------------------------------+ 
1 row in set (0.00 sec) 
0

ファイルが大きすぎない場合は、ExcelにCSVを読み込み、そこで書式設定コマンドを使用して日付表現を変更します。

+0

あなたの答えは、SQLの質問に本当に役立つものではありません。さらに、Excelはバッチ処理に組み込むのが簡単ではありません。 –

+0

これは私のために働いた、単に列のExcelの日付形式を "yyyy-mm-dd"に変更し、csvとして保存してインポートしました。 –

関連する問題