站长网 MySql教程 mysql load报错Incorrect datetime value怎么做

mysql load报错Incorrect datetime value怎么做

小编给大家分享一下mysql load报错Incorrect datetime value怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 有个需求要从oracle把数据倒进mysql, 方法一:用spool

小编给大家分享一下mysql load报错Incorrect datetime value怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
 
有个需求要从oracle把数据倒进mysql,
 
方法一:用spool导成txt文件,然后load进去mysql
 
oracle源端:spool配置
 
[oracle11@S248 ~]$ cat spool_bak.sql
 
set colsep '|'
 
SET feedback off
 
SET newpage none
 
SET pagesize 50000
 
SET linesize 20000
 
SET verify off
 
SET pagesize 0
 
SET term off
 
SET trims ON
 
SET heading off
 
SET trimspool ON
 
SET trimout ON
 
SET timing off
 
SET verify off
 
spool /oracle/spool1.txt
 
select swebid,dstart from liuwenhe.fukuandate  where dstart is not null and  swebid is not null ;
 
spool off
 
EOF
 
运行spool文件,生成txt文件
 
SQL> @spool_bak.sql
 
把生成的txt文件传到mysql服务器下。
 
然后执行load进去mysql
 
mysql> LOAD DATA INFILE 'C:\\Users\\manet\\Desktop\\spool.txt'   INTO TABLE fukuandate  FIELDS TERMINATED  BY "|"
 
不幸的是报错:
 
Incorrect datetime value: '15-SEP-15' for column 'DSTART' at row 1
 
很明显是日期格式的问题,查看导出来的txt文件内容:
 
[oracle11@S248 ~]$ cat spool1.txt
 
403965|15-SEP-15
 
442917|01-AUG-16
 
然而mysql的默认日期格式:为yyy-mm-dd
 
mysql> show variables like 'datetime_format';       ####查看mysql的默认格式
 
+—————–+——————-+
 
| Variable_name   | Value             |
 
+—————–+——————-+
 
| datetime_format | %Y-%m-%d %H:%i:%s |
 
+—————–+——————-+
 
1 row in set (0.00 sec)
 
mysql> SELECT NOW() FROM DUAL;
 
+———————+
 
| NOW()               |
 
+———————+
 
| 2017-03-03 13:32:18 |
 
+———————+
 
1 row in set (0.00 sec)
 
于是猜想把数据中的日期改成yyyy-mm-dd的形式,修改oraclespool.sql脚本,把日期格式改成yyyy-mm-dd的形式。
 
[oracle11@S248 ~]$ cat   spool.sql
 
set colsep '|'
 
SET feedback off
 
SET newpage none
 
SET pagesize 50000
 
SET linesize 20000
 
SET verify off
 
SET pagesize 0
 
SET term off
 
SET trims ON
 
SET heading off
 
SET trimspool ON
 
SET trimout ON
 
SET timing off
 
SET verify off
 
spool /oracle/spool.txt
 
select swebid,to_char(dstart,'yyyy-mm-dd') from liuwenhe.fukuandate  where dstart is not null and  swebid is not null;
 
spool off
 
改成:
 
INSERT INTO FUKUANDATE (SWEBID, DSTART) VALUES (403965,STR_TO_DATE('15-09-2015','%d-%m-%Y'));
 
然后执行即可,
 
以上是“mysql load报错Incorrect datetime value怎么办”这篇文章的所有内容,感谢各位的阅读!

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/mysql/2021/1223/42548.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部