MySQL中有多种时间类型可供选择,如DATE、TIME、DATETIME、TIMESTAMP等,如何选择合适的时间类型存储数据是一个需要仔细考虑的问题。
DATE类型用于存储日期数据,精度为年、月、日。一般适用于仅关心日期信息的情况下,如生日、入职日期等。其存储格式为YYYY-MM-DD。下面是一个例子:
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
birthday DATE
);
TIME类型用于存储时间数据,精度为时、分、秒。一般适用于仅关心时间信息的情况下,如开门时间、关闭时间等。其存储格式为HH:mm:ss。下面是一个例子:
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
open_time TIME
);
DATETIME类型用于存储日期和时间数据,精度为年、月、日、时、分、秒。一般适用于需要同时关注日期和时间信息的情况下,如订单创建时间、会议开始时间等。其存储格式为YYYY-MM-DD HH:MM:SS。下面是一个例子:
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
order_time DATETIME
);
TIMESTAMP类型用于存储日期和时间数据,精度同DATETIME类型。与DATETIME类型不同的是,TIMESTAMP类型是自动初始化、自动更新的,一般适用于需要记录数据修改时间的情况下,如文章发布时间、用户登录时间等。其存储格式与DATETIME类型相同。下面是一个例子:
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
下面通过两个例子验证不同时间类型在MySQL中的存储方式。
假设有一个用户表,需要记录用户的基本信息和创建时间。
若使用DATETIME类型,可以创建如下表:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
create_time DATETIME
);
则可以插入数据:
INSERT INTO user (name, create_time) VALUES ('张三', '2022-07-01 12:30:00');
查询数据:
SELECT * FROM user;
结果如下:
+----+--------+---------------------+
| id | name | create_time |
+----+--------+---------------------+
| 1 | 张三 | 2022-07-01 12:30:00 |
+----+--------+---------------------+
若使用TIMESTAMP类型,可以创建如下表:
CREATE TABLE user (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
则可以插入数据:
INSERT INTO user (name) VALUES ('李四');
查询数据:
SELECT * FROM user;
结果如下:
+----+--------+---------------------+
| id | name | create_time |
+----+--------+---------------------+
| 1 | 李四 | 2022-07-01 12:54:00 |
+----+--------+---------------------+
修改数据:
UPDATE user SET name = '王五' WHERE id = 1;
查询数据:
SELECT * FROM user;
结果如下:
+----+--------+---------------------+
| id | name | create_time |
+----+--------+---------------------+
| 1 | 王五 | 2022-07-01 12:55:00 |
+----+--------+---------------------+
由此可以看出,使用TIMESTAMP类型存储的数据会自动更新修改时间。
本文链接:http://task.lmcjl.com/news/14146.html