Загрузить даты в формате unix. Mysql БД - PullRequest
0 голосов
/ 19 марта 2020

У меня есть данные с форматом даты 1577234966837. Я загрузил эти данные в таблицу с помощью команды:

load data infile 'C:/file.tsv' 
into table table_1 
fields terminated by '\t' 
lines terminated by'\n' 
ignore 1 lines  (value, @timestamp)  
set timestamp = FROM_UNIXTIME(@timestamp);

Команда выполнена успешно, но значение в столбце времени столбца равно нулю. Как загрузить этот формат?

1 Ответ

2 голосов
/ 20 марта 2020

Ваш код выглядит правильно, но есть проблемы с преобразованием типов данных.

В MySQL unixtime - это число секунд с 1970-01-01 00:00:00.

В вашем случае число выглядит как JavaScript время в миллисекундах, поэтому для правильного преобразования вам следует разделить число на 1000

select from_unixtime(1577234966837); -- result is NULL
select from_unixtime(1577234966837/1000); -- result 2019-12-25 00:49:26.8370

Ссылка на DB-скрипту

Итак, правильная команда импорта должна выглядеть так:

load data infile 'C:/file.tsv' 
into table table_1 
fields terminated by '\t' 
lines terminated by'\n' 
ignore 1 lines  (value, @timestamp)  
set timestamp = FROM_UNIXTIME(@timestamp/1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...