csv ファイルからテーブルに 100 万件以上のレコードをインポートしています。load data local infile メソッドを使用するとうまく機能します。
ただし、日付はすべて異なる形式です。簡単なグーグルでこの機能にたどり着きました:
STR_TO_DATE
ただし、それを実装すると、何も得られず、空の挿入が得られます。これは、1つの日付(同じ問題で4つありました)と一般的な列名を含むように削減された私のSQです。
load data local infile 'myfile.csv' into table `mytable`
fields terminated by '\t'
lines terminated by '\n'
IGNORE 1 LINES
( `column name 1`
, `my second column`
, @temp_date
, `final column`)
SET `Get Date` = STR_TO_DATE(@temp_date, '%c/%e/%Y')
私が行った場合:
SET `Get Date` = @temp_date
csv からの日付は、ファイル内の形式でキャプチャされます。ただし、最初の方法を試すと、テーブルの列が空になります。列タイプを varchar (255) に変更し、タイムスタンプからキャプチャーに変更しましたが、最終的には ymd H:i:s をキャプチャーしたいと思います (STR_TO_DATE でそれができるかどうかわかりませんか?)
また、@ 記号が必要な理由についてもわかりません.. グーグルはそこで失敗しました。
だから、私の質問は次のとおりです。
- この関数を使用するのに @ 記号が必要なのはなぜですか?
- データ形式 ('%c/%e/%Y') は、入力データまたは目的の出力の形式である必要がありますか?
- この方法でも時間をキャプチャできますか?
大きな投稿でごめんなさい!
とりあえずGoogleに戻る...