首页/数据/SQL 速查/UNIX_TIMESTAMP 与 FROM_UNIXTIME
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

UNIX_TIMESTAMP 与 FROM_UNIXTIME

Unix 时间戳与日期时间互转:MySQL 提供专用函数;PostgreSQL 用 extract(epoch) 与 to_timestamp,注意秒/毫秒与显示时区。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SELECT UNIX_TIMESTAMP();                       -- 秒级
SELECT UNIX_TIMESTAMP('2024-06-01 00:00:00');
SELECT FROM_UNIXTIME(1717171200);              -- 转回日期时间
SELECT FROM_UNIXTIME(1717171200, '%Y-%m-%d');  -- 直接带格式

PostgreSQL

PostgreSQL
SELECT EXTRACT(EPOCH FROM now())::bigint;      -- 秒(numeric 转换)
SELECT to_timestamp(1717171200);               -- timestamptz
SELECT to_timestamp(1717171200) AT TIME ZONE 'UTC';
单位两库默认处理秒级;毫秒时间戳需先除以 1000
时区MySQL 按会话 time_zone 折算;PostgreSQL to_timestamp 返回带时区时间戳
范围MySQL TIMESTAMP 类型上限 2038-01-19,DATETIME 无此限制

易错点

  • 毫秒时间戳(13 位)直接传给秒级函数会得到离谱年份,转换前先判断位数
  • MySQL 的 TIMESTAMP 列有 2038 年上限,远超该日期的业务(如合同到期)用 DATETIME

数据来源与参考

  • MySQL 8.0 Reference Manual · UNIX_TIMESTAMP
  • PostgreSQL Documentation · Date/Time Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌