mysql - 警告(代码 1411): Incorrect datetime value:

标签 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' into table logs_master fields terminated by '\t' enclosed by '' lines terminated by '\n' (@transaction_time, col2, col3, col4,...) SET updated_at = NOW(), transaction_time = STR_TO_DATE(@transaction_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

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

最佳答案

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

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')  

关于mysql - 警告(代码 1411): Incorrect datetime value:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31789072/

相关文章:

sql - 一个简单的 - JPA @OneToMany 正在为不存在的表生成 SQL

python - 使用子查询创建单个查询,本质上是一个带有选择查询的插入查询

php - 在日期/时间字段中添加日期和时间,并使用 mysql 在 php 中获取更新的日期/时间

java - 在 Android (Java/Kotlin) 中将字符串日期转换为日期,而无需处理调用需要 API 级别 26

php - 使用 PHP 的 for 循环内的表中的先前值进行计算

mysql - 向列添加约束

sql - Postgresql 为每个 id 提取最后一行

javascript - GraphQL 不允许查询不同字段

mysql - 仅在 mysql 的 varchar 列中按日期分组

c# - Convert.ToDateTime() 的意外行为