以 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
所以正确的导入命令应该是这样的:
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);
我有日期格式为 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
所以正确的导入命令应该是这样的:
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);