MySQL获取当前时间和时间戳

使用NOW()或CURRENT_TIMESTAMP获取当前日期时间,CURDATE()获取当前日期,UNIX_TIMESTAMP()获取Unix时间戳,FROM_UNIXTIME()将时间戳转为日期时间格式。

在MySQL中获取当前时间或时间戳非常常见,主要用于记录数据的创建或修改时间。以下是几种常用的方法和函数,帮助你准确获取当前时间与时间戳。

获取当前日期和时间

使用 NOW()CURRENT_TIMESTAMP 可以获取当前的日期和时间(包含年月日时分秒):

NOW()
CURRENT_TIMESTAMP

示例:

SELECT NOW(); -- 返回类似:2025-04-05 10:30:45

这两个函数返回的是当前会话所在时区的时间,格式为 DATETIME 类型。

获取当前日期(不含时间)

如果只需要日期部分,可以使用 CURDATE()

CURDATE()

示例:

SELECT CURDATE(); -- 返回:2025-04-05

获取当前时间戳(Unix Timestamp)

使用 UNIX_TIMESTAMP() 可以获取当前的 Unix 时间戳(从1970-01-01 00:00:00 UTC开始的秒数):

UNIX_TIMESTAMP()

示例:

SELECT UNIX_TIMESTAMP(); -- 返回类似:1743817845

也可以将指定时间转为时间戳:

SELECT UNIX_TIMESTAMP('2025-04-05 10:30:00');

将时间戳转换回日期时间

使用 FROM_UNIXTIME() 可以把 Unix 时间戳还原为可读的日期时间格式:

FROM_UNIXTIME(1743817845)

示例:

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()); -- 返回当前时间的DATETIME格式

还可以自定义输出格式:

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y-%m-%d %H:%i:%s');

基本上就这些常用方法。根据实际需求选择合适函数即可,比如记录创建时间通常用 NOW(),而做时间计算或存储时可能更倾向使用 UNIX_TIMESTAMP()