有时我们遇到的时间戳不是 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微秒

本文指导如何将13位和16位时间戳(精确到毫秒和微秒)转换为10位秒级时间戳,并使用FROM_UNIXTIME函数转为 '%Y-%m-%d%H:%i:%S' 格式,确保处理精度的同时便于阅读和操作。

被折叠的 条评论
为什么被折叠?



