mysql获取当前时间戳,适用于不同格式和精度的需求

时间:2025-09-20 12:45

在 MySQL 中,获取当前时间戳的函数有多个,适用于不同格式和精度的需求,以下是常用方法:

1. UNIX_TIMESTAMP()

返回当前时间的UNIX 时间戳(即从 1970-01-01 00:00:00 UTC 到现在的秒数),整数类型。
示例:
sql
SELECT UNIX_TIMESTAMP();  -- 结果:1696500000(示例值)
 
若需要毫秒级精度(MySQL 5.6.4+ 支持),可使用:
sql
SELECT UNIX_TIMESTAMP(NOW(3)) * 1000;  -- 结果:1696500000123(包含毫秒)
 

2. NOW()

返回当前日期和时间,格式为 YYYY-MM-DD HH:MM:SS,包含日期和时间部分。
示例:
sql
SELECT NOW();  -- 结果:2023-10-05 15:30:00(示例值)
 
若需要微秒级精度,可指定小数位数(0-6):
sql
SELECT NOW(6);  -- 结果:2023-10-05 15:30:00.123456(包含微秒)
 

3. CURRENT_TIMESTAMP()

与 NOW() 功能完全相同,是其别名,支持相同的精度参数。
示例:
sql
SELECT CURRENT_TIMESTAMP();  -- 结果同上
SELECT CURRENT_TIMESTAMP(3);  -- 毫秒级精度
 

4. SYSDATE()

返回函数执行时的当前时间,与 NOW() 的区别是:
  • NOW() 在语句开始执行时取值,同一语句中多次调用结果相同;
  • SYSDATE() 每次调用时实时取值,可能因语句执行耗时产生差异。
示例:
sql
SELECT SYSDATE(), SLEEP(2), SYSDATE();  -- 两个时间会相差约2秒
 

应用场景示例:

  • 插入记录时自动添加时间戳:
    sql
    INSERT INTO logs (content, create_time)
    VALUES ('操作日志', NOW());  -- 插入当前时间
    
     
     
  • 计算时间差(如获取 5 分钟前的 UNIX 时间戳):
    sql
    SELECT UNIX_TIMESTAMP() - 300;  -- 300秒 = 5分钟
    
     
     
根据需求选择合适的函数,UNIX_TIMESTAMP() 适合需要整数时间戳的场景,NOW() 适合需要可读性强的日期时间格式的场景。
mysql数据库连接,常见的 MySQL 连接方法
mysql使用,MySQL 的基础使用指南
mysql获取当前时间戳,适用于不同格式和精度的需求
mysql注释符号,MySQL 支持三种注释方式
重启mysql服务命令,常见系统的重启命令
mysql获取当前日期,适用于不同的需求场景
MySQL ADD COLUMN 避坑指南:从基础语法到在线DDL与性能影响
MySQL分页技术选型指南:传统分页与游标分盘的优缺点与适用场景
生产环境MySQL安全实践:创建应用用户的正确姿势与避坑指南
MySQL DDL实战:详解ALTER TABLE DROP COLUMN的原理、语法与高性能方案