有时我们遇到的时间戳不是 10 位 ,而是 13 位或者16位,那么我们改如何转换为指定时间格式呢?
以 13 位的时间戳为例子,可参考以下步骤:
步骤一:先转成 10 位的时间戳
-- 方法一:将 13 位的时间戳再四舍五入
select round(1608524472211 / 1000);
-- 方法二:取前10位数值
select left(1608524472211,10);
步骤二:用函数 FROM_UNIXTIME() 转成 指定的时间格式
-- 注:这两种方法 转换标准时间后,可能会有 1 秒 的差异
select from_unixtime(round(1608524472211 / 1000), '%Y-%m-%d %H:%i:%S') union all
select from_unixtime(left(1608524472211,10), '%Y-%m-%d %H:%i:%S');
PS :
10 位的时间戳精确到 秒
13 位的时间戳精确到 毫秒
16 位的时间戳精确到 微秒
1秒 = 1000毫秒 = 1000000微秒