13位时间戳是毫秒级,需除以1000转为秒后用FROM_UNIXTIME转换,再通过DATE_FORMAT格式化输出,注意处理NULL值、时区和性能问题。

在MySQL中,将13位时间戳(毫秒级)转换为可读的日期时间格式,核心在于先将其转换为秒级时间戳,再利用
FROM_UNIXTIME
要将存储为
BIGINT
timestamp_ms
FROM_UNIXTIME
例如,如果你有一个名为
your_table
timestamp_ms
SELECT
timestamp_ms,
FROM_UNIXTIME(timestamp_ms / 1000) AS converted_datetime
FROM
your_table;如果你需要更具体的日期格式,可以结合
DATE_FORMAT
SELECT
timestamp_ms,
DATE_FORMAT(FROM_UNIXTIME(timestamp_ms / 1000), '%Y-%m-%d %H:%i:%s') AS formatted_datetime
FROM
your_table;这会把像
1678886400000
2023-03-15 08:00:00
这确实是个常见的问题,尤其当你从不同系统集成数据时。简单来说,10位时间戳通常表示的是自Unix纪元(1970年1月1日 00:00:00 UTC)以来的秒数,而13位时间戳则表示的是毫秒数。
很多现代编程语言和框架,比如Java的
System.currentTimeMillis()
Date.now()
将13位时间戳转换为你想要的具体日期格式,关键在于
DATE_FORMAT()
你已经知道需要先将毫秒转换为秒:
FROM_UNIXTIME(timestamp_ms / 1000)
DATE_FORMAT()
一些常用的格式化示例:
SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp_ms / 1000), '%Y-%m-%d %H:%i:%s') AS standard_datetime FROM your_table;
SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp_ms / 1000), '%Y/%m/%d') AS just_date FROM your_table;
SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp_ms / 1000), '%H:%i:%s') AS just_time FROM your_table;
SELECT DATE_FORMAT(FROM_UNIXTIME(timestamp_ms / 1000), '%W, %M %D %Y %r') AS verbose_datetime FROM your_table; -- 示例输出: Wednesday, March 15th 2023 08:00:00 AM
选择合适的格式取决于你的应用场景。比如,如果是在报表里展示,你可能希望日期格式更直观;如果是日志分析,精确到秒甚至毫秒(虽然MySQL默认只到秒,但你可以在应用程序层面处理毫秒部分)可能更重要。理解这些格式化符号(如
%Y
%m
DATE_FORMAT
在实际操作中,转换时间戳远不止一个函数调用那么简单,总会有些“坑”等着你。
一个我经常碰到的问题是数据质量。如果你的
timestamp_ms
NULL
timestamp_ms / 1000
NULL
IFNULL
COALESCE
NULL
CAST
TRY_CAST
NULL
SELECT FROM_UNIXTIME(CAST(timestamp_ms AS UNSIGNED) / 1000)
另一个值得注意的是时区问题。
FROM_UNIXTIME()
SELECT
CONVERT_TZ(FROM_UNIXTIME(timestamp_ms / 1000), 'UTC', 'Asia/Shanghai') AS local_datetime
FROM
your_table;当然,前提是你的MySQL服务器已经加载了时区信息。
还有性能考量。如果你在一个非常大的表上频繁地进行
FROM_UNIXTIME(timestamp_ms / 1000)
WHERE
DATETIME
例如,创建一个生成列:
ALTER TABLE your_table ADD COLUMN created_at_dt DATETIME AS (FROM_UNIXTIME(timestamp_ms / 1000));
这样
created_at_dt
以上就是MySQL时间格式处理 13位时间戳转日期格式的完整流程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号