MySQL で LOAD DATA を使用して日付データをロードする方法
P粉738046172
P粉738046172 2023-08-22 22:12:49
0
1
534
<p>MySQL の日付列のデフォルトの日付形式は <code>YYYY-MM-DD HH:MM:SS</code> です。 </p> <p>ロードしようとしているデータ ファイルには、<code>DD-MON-YY HH:MM:SS</code> の形式の日付フィールドがあります。 <code>LOAD DATA</code> コマンドを使用してこのファイルをロードすると、データベースが混乱し、すべての日付エントリが <code>0000-00-00 00:00:00</code> または NULL に設定されます。 </p> <p>これは <code>STR_TO_DATE</code> オプションを使用したテストですが、機能しません。</p> <p><strong>测试文件(test_temp.csv)</strong></p> <pre class="brush:php;toolbar:false;">c1, c2 12-06-07 22:50:19、「abc」 07-6月-13 22:50:19、「bcd」</pre> <p><strong>検査表(temp_test)</strong></p> <pre class="brush:php;toolbar:false;">temp_test; について説明します。 ------- ------------- ------ ----- --------- ------- |フィールド |タイプ |ヌル |キー |デフォルト |番外編 | ------- ------------- ------ ----- --------- ------- | c1 |日時 |はい | | NULL | | | c2 | varchar(10) |はい | | NULL | | ------- ------------- ------ ----- ------------- ------- </前> <p><strong>データ追加コマンド:</strong></p> <pre class="brush:php;toolbar:false;">データをロードする infile '/var/lib/mysql/DataSet-1/temp_test.csv' 無視する テーブル temp_test に 「,」で終わるフィールド 「」で囲む 「rn」で終わる行 1行を無視する (@var_c1,c2) set c1 = STR_TO_DATE(@var_c1,'%d-%b-%y %h:%i:%s');</pre> <p>输出</strong></p> <pre class="brush:php;toolbar:false;">クエリ OK、2 行が影響を受ける、2 つの警告 (0.00 秒) レコード: 2 削除: 0 スキップ: 0 警告: 0 MySQL>警告を表示します。 ------- ------ ------------------------------------- ------------------------------------ |レベル |コード |メッセージ | ------- ------ ------------------------------------- ------------------------------------ |エラー | 1411 |関数 str_to_date | の日時値が正しくありません: '07-JUN-12 22:50:19' |エラー | 1411 |関数 str_to_date | の日時値が正しくありません: '07-JUN-13 22:50:19' ------- ------ ------------------------------------- ------------------------------------ MySQL> select * from temp_test; ------ ------ | c1 | c2 | ------ ------ | NULL | ABC | | NULL | BCD | ------ ------ </pre> <p>问题出在:</p> <ol> <li>输入日期列(应该は 07-JUN-12また、07-Jun-12)または <li>我的格式文字列(<code>%d-%b-%y</code>)または</li> <li>その他の原因はありますか?</li> </ol>


P粉738046172
P粉738046172

全員に返信(1)
P粉852578075

STR_TO_DATE() 形式文字列が無効です。サンプル データの時間には、12 時間制 (%h) ではなく、24 時間制 (%H または %k) が使用されます。使用可能なすべての日付形式指定子を ここ で確認できます。

###意思### リーリー ###着替える### リーリー

あなたのステートメントは次のようになります

リーリー

サンプルデータを使用してロードした後

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート