使用mysql workbench query将数据(datetime)加载到mysql时出错1265

vfhzx4xs  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(321)

我正在尝试从 .txt 文件到 MySQL 数据库。但是,我无法将日期时间数据集加载到表中。它回来了 0000-00-00 00:00:00 . 有人能告诉我我做错了什么吗?
我创建了以下内容 taxi_movement_data 把table变成 taxiapp 架构。

CREATE TABLE `taxiapp`.`taxi_movement_data` (
`tracked_datetime` DATETIME NOT NULL,
`longitude` DOUBLE NOT NULL,
`lattitude` DOUBLE NOT NULL,
`id` INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`), UNIQUE INDEX `id_UNIQUE` (`id` ASC));

我的.txt文件示例如下。

2018-06-01T23:51:09+08:00,103.62926,1.30081
2018-06-01T23:51:09+08:00,103.63598,1.27931
2018-06-01T23:51:09+08:00,103.6375,1.34143

我的sql查询如下

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/uploads/ltasampledata.txt' 
INTO TABLE taxi_movement_data 
FIELDS TERMINATED BY ',' enclosed by '"'
LINES TERMINATED BY '\r\n'
SET tracked_datetime = DATE_ADD(DATE_FORMAT(substring(@tracked_datetime,1,19), '%Y-%m-%d %H:%i:%s'),INTERVAL 8 HOUR);

结果如下,无法加载datetime。返回'u datetime' 0000-00-00 00:00:00 . 经度、纬度和id正常工作。
查询后的表结果。
抱歉,我还没有授权直接在stackoverflow上加载图像,因此它已成为一个链接。
错误消息如下

3 row(s) affected, 9 warning(s): 1265 Data truncated for column 'tracked_datetime' at row 1 1261 Row 1 doesn't contain data for all columns 1048 Column 'tracked_datetime' cannot be null 1265 Data truncated for column 'tracked_datetime' at row 2 1261 Row 2 doesn't contain data for all columns 1048 Column 'tracked_datetime' cannot be null 1265 Data truncated for column 'tracked_datetime' at row 3 1261 Row 3 doesn't contain data for all columns 1048 Column 'tracked_datetime' cannot be null Records: 3  Deleted: 0  Skipped: 0  Warnings: 9 0.078 sec
gkn4icbw

gkn4icbw1#

我犯了个愚蠢的错误。在任何情况下,我纠正了它如下。希望它能帮助其他人。
在设置跟踪日期时间之前添加(@tracked\u datetime,longitude,latitude)
sql查询应该如下所示。

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/uploads/ltasampledata.txt' 
INTO TABLE taxi_movement_data 
FIELDS TERMINATED BY ',' enclosed by '"'
LINES TERMINATED BY '\r\n'
(@tracked_datetime,longitude,lattitude)
SET tracked_datetime = DATE_ADD(DATE_FORMAT(substring(@tracked_datetime,1,19), '%Y-%m-%d %H:%i:%s'),INTERVAL 8 HOUR);

相关问题