datetime在mysql中如何使用

来源:这里教程网 时间:2026-02-28 20:09:28 作者:

datetime在mysql中如何使用

在 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 在需要精确记录时间点的场景中非常实用,比如日志、订单、活动安排等。只要注意格式规范和合理使用函数,操作起来很直观。

相关推荐