在mysql中加载不同的日期格式

Hit*_*han 2 mysql mysqldump date-format mysql-5.0

我的数据文件中有一个日期字段,我试图将其加载到 MySQL 中,但该日期字段采用 dd-mon-yy 格式,而 MySQL 仅识别 YYYY-MM-DD。

有没有办法使用 MySQL LOAD 或任何其他本机实用程序将 DD-MON-YY 数据加载为 YYYY-MM-DD 格式?

Phi*_*lᵀᴹ 7

这并不难。只需要set您的LOAD DATA INFILE命令中的一个部分。

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

mysql>
Run Code Online (Sandbox Code Playgroud)

文件:

[root@node1 ~]# cat /tmp/tst.dat
01-JAN-03
21-MAR-09
28-FEB-11
[root@node1 ~]#
Run Code Online (Sandbox Code Playgroud)

测试:

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>
Run Code Online (Sandbox Code Playgroud)