MySQL 与 INSERT INTO 语句有关,DATETIME 值不会转移到新表

标签 mysql mysql-workbench

<分区>

第一次发帖,如有遗漏请见谅。我一直在努力在 MySQL Community Server - GPL 版本:8.0.11 中将数据从一个表传输到另一个表。为了更好地设置场景,我从 MongoDB 导入数据,然后执行 STR_TO_DATE 函数,然后需要将特定列移动到另一个表,每当我运行命令/查询时,其中一个是 DATETIME 数据类型的列之一。这是代码:

INSERT INTO mlb.hazards 
SELECT '_id', 'Source', 'CreatedTime', 'AlarmId', 'Description'
FROM mlb.incident_20181007 
WHERE Description = 'ALARM ON Runway Hazard 27R 9L';

我收到返回错误信息:

Error Code: 1292. Incorrect datetime value: 'CreatedTime' for column 'CreatedTime' at row 120 0.000 sec

我挖掘了第 120 行的 CreatedTime 和 _id 的数据,这就是我找到的。

从Mysql工作台复制的数据: '2018-07-03 13:35:41.421000', '621E30C4401749328035E215E680CA6A'

列数据类型在两个表中都列为 DATETIME,请帮助我理解我在这里缺少的内容。提前谢谢你。

最佳答案

这可能是您传递字符串而不是列值的简单问题。看起来您正在尝试从事件表中插入列的值(例如列 _id、来源等)。但是,因为您随后用单引号引起来,所以您实际上传递的是文字字符串值。换句话说,它试图插入字符串“CreatedTime”而不是该列中的日期时间值。

mysql 使用反引号代替单引号。您的查询应该是:

INSERT INTO mlb.hazards 
SELECT 
    `_id`, `Source`, `CreatedTime`, `AlarmId`, `Description` 
FROM 
    mlb.incident_20181007 
WHERE 
    `Description` = 'ALARM ON Runway Hazard 27R 9L';

关于MySQL 与 INSERT INTO 语句有关,DATETIME 值不会转移到新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51289528/

相关文章:

php - 如何生成与数据库记录匹配的唯一 URL 变量?

mysql-workbench - MySQL Workbench SSH 连接错误[错误的身份验证类型(allowed_types= ['publickey' ])]

mysql - SQL - 错误代码 1005,错误编号 121

mysql - 移动和备份大型 MySQL 数据库

mysql - SQL WHERE 语句多列 LIKE 一个值

Mysql2::错误:表不存在:显示来自 `sessions` 的完整字段

mysql - 如何获取查询中的下一行和上一行

20,000+条记录的MySQL设计理论

PHP/MySQL - 递增变量名以循环获取数据

mysql - 如果日期相同,则从具有最大日期和最大 ID 的表中选择 ID