select from_unixtime(floor(1510156036741/1000), '%Y %D %M %h:%i:%s');
'2017年11月8日07:47:16'
上面的代码输出一个不包括毫秒精度的时间戳。如何将unix纪元时间转换为包含毫秒的datetime(3)对象?
有可能得到如下的微秒:
select from_unixtime(1510156036741/1000, '%Y %D %M %h:%i:%s %f');
'2017年11月8日07:47:16 741000'
是否可以将微秒结果转换为毫秒?
它有点笨重,但你可以提取微秒并将其除以1000以将其转换为毫秒。在这里,我还将它转换为int并将其与格式化日期连接起来以创建最终日期字符串:
SELECT CONCAT(
from_unixtime(1510156036741/1000, '%Y %D %M %h:%i:%s '),
CAST(EXTRACT(MICROSECOND FROM from_unixtime(1510156036741/1000))/1000
AS SIGNED)
);
“2017年11月8日03:47:16 741”