2012-02-13 12 views
8

ほとんどのMySQLロードスクリプトがありますが、MySqlに適していない日付列以外は完璧です。MySQLのロード日時mm/dd/yyyy形式

 
load data infile '/Users/pfarrell/sandbox/waybase/folklore/Titles_1976.csv' 
into table fix76 
fields terminated by ',' 
enclosed by '"' 
ignore 1 lines 
( patentId, USPatentNum, title, grantDate, filedDate) 

問題は、私の日付がmm/dd/yyyy形式であることです。 str_to_date関数 のように見えますが、loadコマンドでどのように使用するのか分かりません。
は、私は次のようなものを想定しています:

 
    grantDate = STR_TO_DATE(something, '%m/%d/%Y'), 

が、それは動作しません。

+0

私は、ヘルパー文字列に日付をインポートすることで、この状況を解決してきた、とあとがきは、変換式に日付を追加するテーブルを更新します。これは見て非常に良いではありませんが、動作します。誰かがより良い方法を持っているかどうかを見てみましょう... – perissf

+0

あなたの接続のロケールを変更して、それが機能するかどうか確認しましたか? –

答えて

7

ユーザー定義変数に日付文字列を読み込み、STR_TO_DATE(@date, '%m/%d/%Y')を使用してそれらをMySQL日付に変換することができます。

はこれを試してみてください:

load data infile '/Users/pfarrell/sandbox/waybase/folklore/Titles_1976.csv' 
into table fix76 
fields terminated by ',' 
enclosed by '"' 
ignore 1 lines 
( patentId, USPatentNum, title, @grantDate, @filedDate) 
set grantDate = STR_TO_DATE(@grantDate, '%m/%d/%Y'), 
filedDate = STR_TO_DATE(@filedDate, '%m/%d/%Y') 
+0

ありがとう、それは素晴らしい作品です。 – fishtoprecords