Ошибка 1265 Загрузка данных (DATETIME) в MySQL с помощью запроса MYSQL Workbench

0

Я пытаюсь загрузить набор данных из файла .txt в MySQL данных MySQL. Однако я не могу загрузить набор данных date_time в таблицу. он возвращается 0000-00-00 00:00:00. Может ли кто-нибудь сообщить мне, что я делаю неправильно?

Я создал следующий taxi_movement_data таблицы в 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 не может быть загружено. "Tracked_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
Теги:
mysql-workbench

1 ответ

0
Лучший ответ

Я сделал глупую ошибку. В любом случае, я исправил его следующим. Надеюсь, это поможет кому-то по дороге.

Добавьте (@tracked_datetime, longitude, latitude) перед установкой tracked_datetime

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню