1. 什么是时间戳?
在数据库中,时间戳是指记录某个时间点的方式。在 MySQL 中,可以使用 DATETIME 或 TIMESTAMP 类型来存储时间戳。
2. 设置 MySQL 中的时间戳
2.1 使用 DATETIME 数据类型
在使用 DATETIME 类型的列中,可以将当前时间戳作为默认值来存储创建时间。我们可以通过以下 SQL 语句来创建带有创建时间的表:
CREATE TABLE mytable (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
column1 VARCHAR(30) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
上面的 SQL 语句中,created_at 列包含当前时间戳的默认值 CURRENT_TIMESTAMP。
如果我们向 mytable 表中插入一行记录,则会自动将当前时间戳作为 created_at 列的值:
INSERT INTO mytable (column1) VALUES ('some value');
2.2 使用 TIMESTAMP 数据类型
与 DATETIME 数据类型不同,TIMESTAMP 类型可以自动更新并用于存储创建和更新时间。我们可以使用以下 SQL 语句创建带有创建和更新时间的表:
CREATE TABLE mytable (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
column1 VARCHAR(30) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
在上面的 SQL 语句中,created_at 列包含当前时间戳的默认值 CURRENT_TIMESTAMP,而 updated_at 列在 UPDATE 操作时自动将它的值更新为当前时间戳。
如果我们向 mytable 表中插入一行记录,则会自动将当前时间戳作为 created_at 和 updated_at 列的值:
INSERT INTO mytable (column1) VALUES ('some value');
如果我们更新 mytable 表中的某一条记录,则会自动将当前时间戳作为 updated_at 列的值:
UPDATE mytable SET column1 = 'new value' WHERE id = 1;
3. 总结
使用 DATETIME 或 TIMESTAMP 类型,我们可以在 MySQL 中轻松地设置并存储时间戳。除了创建时间戳之外,我们还可以使用 TIMESTAMP 类型来存储更新时间戳,以及使用 ON UPDATE CURRENT_TIMESTAMP 属性来自动更新更新时间戳。