📅  最后修改于: 2023-12-03 15:05:17.012000             🧑  作者: Mango
在SQL中,自动时间戳是一种机制,它可以在插入或更新数据行时自动记录时间戳。这可以有效地跟踪数据的历史记录和更改。
有两种常见的时间戳类型可以在SQL中使用:
DATETIME
类型:它存储日期和时间信息,格式为YYYY-MM-DD HH:MI:SS
。TIMESTAMP
类型:它存储日期和时间信息,格式为YYYY-MM-DD HH:MI:SS
,但它具有更高的精度,并且可以自动跟踪时区更改。在创建一个表格时,我们可以添加一个自动时间戳列:
CREATE TABLE MyTable (
id INT PRIMARY KEY,
name VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
在这个例子中,当一个新数据行被插入时,created_at
列会自动填写当前时间戳。如果我们想手动更新时间戳,我们可以使用CURRENT_TIMESTAMP
函数。
在这个表格中,如果我们执行下面的插入语句:
INSERT INTO MyTable (id, name) VALUES (1, 'John');
则created_at
列将被设置为当前日期和时间。例如:2021-09-20 12:34:56
。
如果我们希望更新一行中的数据时同时更新时间戳,我们可以使用ON UPDATE
子句:
CREATE TABLE MyTable (
id INT PRIMARY KEY,
name VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
当一个数据行被更新时,updated_at
列将自动更新为当前时间戳。例如:2021-09-20 13:45:32
。
SQL中的自动时间戳机制为数据行的历史记录和更改提供了方便的跟踪方法。我们可以使用DATETIME
或TIMESTAMP
类型来存储时间戳,并使用DEFAULT
和ON UPDATE
子句来自动记录和更新时间戳。