第一次发布,如果我省略任何内容,请原谅我。我一直在努力在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,请帮助我了解我在这里缺少的内容。预先谢谢你。
答案 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';