在 MySQL 中,查看当前时间最常用的方法是使用 NOW() 函数。它返回服务器当前的日期和时间(精确到秒),格式为
'YYYY-MM-DD HH:MM:SS'。
NOW() 函数的基本用法
直接在查询中调用即可获取当前时间:
SELECT NOW();—— 返回类似
2024-05-20 14:23:56的结果 支持在 INSERT、UPDATE 或 WHERE 条件中使用,例如:
INSERT INTO log (msg, created_at) VALUES ('login', NOW());
与其它时间函数的区别
MySQL 提供多个时间函数,用途略有不同:
NOW():返回执行语句时的当前时间(语句级一致性,同一语句中多次调用结果相同) CURRENT_TIMESTAMP():与 NOW() 完全等价,可互换使用 SYSDATE():返回函数实际执行时刻的时间(毫秒级精度,同一语句中多次调用可能不同) CURDATE():只返回日期部分('YYYY-MM-DD') CURTIME():只返回时间部分(
'HH:MM:SS')
在建表或默认值中使用 NOW()
可以将 NOW() 作为字段默认值(需注意 MySQL 版本限制):
MySQL 5.6.5+ 支持 DATETIME/TIMESTAMP 字段设置动态默认值:created_at DATETIME DEFAULT CURRENT_TIMESTAMP若要自动更新时间,可加
ON UPDATE CURRENT_TIMESTAMP旧版本只能用触发器模拟类似行为
注意事项
使用时需留意以下几点:
NOW() 返回的是 MySQL 服务器所在系统的时间,不是客户端本地时间 时区影响结果:可通过SELECT @@time_zone;查看当前会话时区 如需 UTC 时间,改用
UTC_TIMESTAMP()在存储过程中或复杂查询里,NOW() 值在语句开始时确定,不会随执行过程变化
