MySQL因INSERT INTO语句而麻烦,DATETIME值将不会转移到新表中

时间:2018-07-11 15:42:25

标签: 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';

我收到返回错误消息:

  

错误代码:1292。不正确的日期时间值:行120 0.000秒的'CreatedTime'列的'CreatedTime'

我为第120行挖了CreatedTime和_id的数据,这就是我发现的结果。

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

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

1 个答案:

答案 0 :(得分:0)

这可能是您传递字符串而不是列值的简单问题。似乎您要插入事件表中的列值(例如_id,Source等列)。但是,因为然后用单引号引起来,所以实际上是在传递文字字符串值。换句话说,它试图插入字符串“ CreatedTime”而不是该列中的datetime值。

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

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