以 unix 时间戳格式上传日期。 Mysql 数据库

Upload dates in unix timestamp format . Mysql DB

我有日期格式为 1577234966837 的数据。

我在 table 中通过命令上传了这些数据:

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

命令成功,但时间戳列中的值为空。何上传这种格式?

您的代码看起来是正确的,但数据类型转换有问题。

在 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 fiddle link

所以正确的导入命令应该是这样的:

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