sql CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
是 SQL 中的一个时间函数或关键字,用于获取当前数据库服务器的日期和时间(精确到秒或毫秒,取决于数据库配置和字段类型)。在 MySQL 中,它既可以用作列的默认值,也可以直接在查询中使用。
1. 基本用法
SELECT CURRENT_TIMESTAMP;
等价于:
SELECT NOW();
返回示例:
2025-08-15 09:42:35
2. 常见使用场景
场景 1:插入当前时间
INSERT INTO orders (order_name, created_at)
VALUES ('订单A', CURRENT_TIMESTAMP);
作用:在数据插入时记录当前时间。
场景 2:作为列的默认值
CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
作用:如果插入数据时不指定 created_at
,会自动使用插入时的时间。
场景 3:自动更新时间(配合 ON UPDATE
)
CREATE TABLE posts (id INT PRIMARY KEY AUTO_INCREMENT,title VARCHAR(100),updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
作用:每次更新该行数据时,updated_at
会自动刷新为当前时间。
3. 特点
精度:MySQL 5.6.4+ 开始支持毫秒(
CURRENT_TIMESTAMP(3)
表示精确到毫秒)。时区:返回值受 服务器时区 影响,可以用
SET time_zone
修改。类型限制:
DEFAULT CURRENT_TIMESTAMP
只能用于TIMESTAMP
或DATETIME
类型列。多列限制(老版本 MySQL):MySQL 5.5 以前,
CURRENT_TIMESTAMP
只能用在一个列上作为默认值或自动更新值,之后版本放宽了限制。
4. 精度控制
SELECT CURRENT_TIMESTAMP(3); -- 精确到毫秒
SELECT CURRENT_TIMESTAMP(6); -- 精确到微秒