web-dev-qa-db-ja.com

mysqlに異なる日付形式をロードする

MySQLにロードしようとしているデータファイルに日付フィールドがありますが、日付フィールドはdd-mon-yy形式であり、MySQLはYYYY-MM-DDしか認識しません。

MySQL LOADまたは他のネイティブユーティリティを使用してDD-MON-YYデータをYYYY-MM-DD形式にロードする方法はありますか?

2
Hitesh Chouhan

難しいことではありません。 setセクションがLOAD DATA INFILEコマンド。

mysql> create table tst ( datecol datetime );
Query OK, 0 rows affected (0.04 sec)

mysql>

ファイル:

[root@node1 ~]# cat /tmp/tst.dat
01-JAN-03
21-MAR-09
28-FEB-11
[root@node1 ~]#

テスト:

mysql> load data infile '/tmp/tst.dat'
    -> into table tst
    -> fields terminated by '|'
    -> lines terminated by '\n'
    -> (@datecol)
    -> set
    -> datecol = str_to_date(@datecol, '%d-%M-%y');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Deleted: 0  Skipped: 0  Warnings: 0

mysql> select * from tst;
+---------------------+
| datecol             |
+---------------------+
| 2003-01-01 00:00:00 |
| 2009-03-21 00:00:00 |
| 2011-02-28 00:00:00 |
+---------------------+
3 rows in set (0.00 sec)

mysql>
7
Philᵀᴹ