
在 MySQL 中,DATETIME 是一种常用的数据类型,用于存储日期和时间的组合值,格式为 YYYY-MM-DD HH:MM:SS。它的取值范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'。下面介绍如何在实际中使用 DATETIME 类型。
定义 DATETIME 字段
在创建表时,可以使用 DATETIME 类型来定义一个包含日期和时间的字段:
CREATE TABLE events (
id INT AUTO_INCREMENT PRIMARY KEY,
event_name VARCHAR(100),
event_time DATETIME
);
这样,event_time 就可以存储类似 2025-04-05 14:30:00 的完整时间数据。
插入 DATETIME 值
插入数据时,可以直接使用字符串格式写入 DATETIME 值:
INSERT INTO events (event_name, event_time)
VALUES ('产品发布', '2025-04-05 10:00:00');
也可以使用 MySQL 提供的时间函数,比如 NOW() 插入当前时间:
INSERT INTO events (event_name, event_time)
VALUES ('用户注册', NOW());
CURRENT_TIMESTAMP 也可用于获取当前时间:
INSERT INTO events (event_name, event_time)
VALUES ('系统启动', CURRENT_TIMESTAMP);
查询与格式化 DATETIME
查询时可以对 DATETIME 字段进行比较、筛选或格式化输出。
例如,查找某个时间之后的事件:
SELECT * FROM events WHERE event_time > '2025-04-05 00:00:00';
使用 DATE_FORMAT() 函数自定义显示格式:
SELECT event_name,
DATE_FORMAT(event_time, '%Y年%m月%d日 %H:%i') AS formatted_time
FROM events;
这会将时间显示为如 2025年04月05日 10:00 的格式。
提取日期或时间部分可以用:
- DATE(event_time) —— 只取日期部分
- TIME(event_time) —— 只取时间部分
- YEAR(event_time), MONTH(event_time), HOUR(event_time) 等提取具体单位
自动设置默认值或更新时间
可以在建表时设置 DATETIME 字段的默认值为当前时间,或在记录更新时自动刷新:
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
这样,created_at 在插入时自动记录时间,updated_at 每次修改记录都会更新为当前时间。
基本上就这些。DATETIME 在需要精确记录时间点的场景中非常实用,比如日志、订单、活动安排等。只要注意格式规范和合理使用函数,操作起来很直观。










