如何使用MySQL FROM_UNIXTIME函数将Unix时间戳转换成日期格式?
- 内容介绍
- 文章标签
- 相关推荐
本文共计907个文字,预计阅读时间需要4分钟。
FROM_UNIXTIME 是 MySQL 中将 Unix 时间戳(即从 1970-01-01 00:00:00 UTC 开始的秒数)转换为日期时间字符串的函数。默认返回的格式为 DATETIME 类型,格式为 'YYYY-MM-DD HH:MM:SS'。
常见误用是把毫秒级时间戳直接传进去——FROM_UNIXTIME 只接受**秒级整数**,传入 1717023600000 这样的毫秒值会得到错误结果(比如公元 56379 年)。
- 正确:
FROM_UNIXTIME(1717023600)→'2024-05-30 15:00:00' - 错误:
FROM_UNIXTIME(1717023600000)→ 解析成远超预期的年份 - 若只有毫秒值,先除以 1000 并用
FLOOR或CAST(... AS UNSIGNED)截断小数:FROM_UNIXTIME(FLOOR(1717023600000 / 1000))
指定输出格式:第二个参数 format 的作用
FROM_UNIXTIME 支持可选的第二个参数 format,用类似 DATE_FORMAT 的格式符自定义输出字符串。这个参数不改变返回类型——即使你写成 '%Y年%m月%d日',结果仍是 VARCHAR,不是 DATE。
本文共计907个文字,预计阅读时间需要4分钟。
FROM_UNIXTIME 是 MySQL 中将 Unix 时间戳(即从 1970-01-01 00:00:00 UTC 开始的秒数)转换为日期时间字符串的函数。默认返回的格式为 DATETIME 类型,格式为 'YYYY-MM-DD HH:MM:SS'。
常见误用是把毫秒级时间戳直接传进去——FROM_UNIXTIME 只接受**秒级整数**,传入 1717023600000 这样的毫秒值会得到错误结果(比如公元 56379 年)。
- 正确:
FROM_UNIXTIME(1717023600)→'2024-05-30 15:00:00' - 错误:
FROM_UNIXTIME(1717023600000)→ 解析成远超预期的年份 - 若只有毫秒值,先除以 1000 并用
FLOOR或CAST(... AS UNSIGNED)截断小数:FROM_UNIXTIME(FLOOR(1717023600000 / 1000))
指定输出格式:第二个参数 format 的作用
FROM_UNIXTIME 支持可选的第二个参数 format,用类似 DATE_FORMAT 的格式符自定义输出字符串。这个参数不改变返回类型——即使你写成 '%Y年%m月%d日',结果仍是 VARCHAR,不是 DATE。

