警告(代码1411):日期时间值不正确:

时间:2015-08-03 13:47:39

标签: mysql sql datetime

您好我正在尝试使用mysql INFILE命令将数据添加到表中,但收到以下错误。

Warning (Code 1411): Incorrect datetime value: ''2015-05-15 15:57:46'' for function str_to_date
Warning (Code 1048): Column 'transaction_time' cannot be null
  

mysql -uroot test --show-warnings -vve“LOAD DATA INFILE   '/Users/xyz/log2.tsv'进入表'log_master字段''t'终止   由''以'\ n'结尾的行包围(@transaction_time,col2,   col3,col4,...)SET updated_at = NOW(),transaction_time =   STR_TO_DATE(@ tranaction_time,'%Y-%m-%d%H:%i:%s')“

CREATE TABLE `test_action_logs_master` (
  `transaction_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `col1` varchar(100) DEFAULT NULL,
  `col2` varchar(700) DEFAULT NULL,
  `col3` varchar(700) DEFAULT NULL,
  `col4` varchar(700) DEFAULT NULL,
  `col5` varchar(200) DEFAULT NULL,
  `col6` varchar(700) DEFAULT NULL,
  `col7` varchar(700) DEFAULT NULL,
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY `col3` (`col3`),
  KEY `col4` (`col4`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

mysql版本:服务器版本:5.6.25 机器:OS X(MAC)Yosemite

show variables like 'sql_mode'
    -> ;
+---------------+------------------------+
| Variable_name | Value                  |
+---------------+------------------------+
| sql_mode      | NO_ENGINE_SUBSTITUTION |
+---------------+------------------------+
1 row in set (0.00 sec)

我通过查看问题的其他主题并查看链接来进行更改 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

不知何故,它不起作用并给出列出的错误。其余字段来源正确,只是作为日期时间值的前导字段未获得来源。

1 个答案:

答案 0 :(得分:1)

您的日期字段包含在一对额外的单引号中,因此您需要相应地调整格式;这将为您提供正确的结果(请注意额外的引号):

SELECT STR_TO_DATE("'2015-05-15 15:57:46'", "'%Y-%m-%d %H:%i:%s'")

您当前的陈述如下,由于模式不匹配,您将获得NULL

SELECT STR_TO_DATE("'2015-05-15 15:57:46'", '%Y-%m-%d %H:%i:%s')