MySQL 时间戳:获取、转换与运算的代码示例
MySQL 通过 UNIX_TIMESTAMP 与 FROM_UNIXTIME 处理时间戳的 SQL 示例,包括获取当前时间戳、时间戳与日期互转以及日期加减。下面按常见场景整理了 MySQL 的 4 段示例代码,直接复制即可使用。
获取时间戳
获取当前时刻的 Unix 时间戳,区分秒级与毫秒级两种精度。
-- 获取当前时间戳(秒)
SELECT UNIX_TIMESTAMP();
-- 获取当前时间戳(毫秒)
SELECT ROUND(UNIX_TIMESTAMP(NOW(3)) * 1000); -- 获取当前时间戳(秒)
SELECT UNIX_TIMESTAMP();
-- 获取当前时间戳(毫秒)
SELECT ROUND(UNIX_TIMESTAMP(NOW(3)) * 1000); 时间戳转日期
将 Unix 时间戳还原为人类可读的日期时间字符串,可自定义格式。
-- 时间戳(秒)转日期时间
SELECT FROM_UNIXTIME(1690000000);
-- 自定义格式
SELECT FROM_UNIXTIME(1690000000, '%Y-%m-%d %H:%i:%s'); -- 时间戳(秒)转日期时间
SELECT FROM_UNIXTIME(1690000000);
-- 自定义格式
SELECT FROM_UNIXTIME(1690000000, '%Y-%m-%d %H:%i:%s'); 日期转时间戳
把指定的日期时间转换为 Unix 时间戳,常用于存储与时间计算。
-- 日期时间转时间戳(秒)
SELECT UNIX_TIMESTAMP('2023-07-22 06:26:40'); -- 日期时间转时间戳(秒)
SELECT UNIX_TIMESTAMP('2023-07-22 06:26:40'); 时间戳运算
基于时间戳做加减(如加一天),用于到期、倒计时等时间推算。
-- 时间戳运算:加 1 天
SELECT UNIX_TIMESTAMP(
DATE_ADD(FROM_UNIXTIME(1690000000), INTERVAL 1 DAY)
); -- 时间戳运算:加 1 天
SELECT UNIX_TIMESTAMP(
DATE_ADD(FROM_UNIXTIME(1690000000), INTERVAL 1 DAY)
);