MySQL使用时间戳类型来存储日期和时间。时间戳指一种自动更新日期和时间的值。当插入新行时,如果指定了时间戳列,则数据库将自动插入当前的日期和时间。
CREATE TABLE table_name ( id INT(11) NOT NULL AUTO_INCREMENT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id) );
在上面的示例中,created_at列指定DEFAULT CURRENT_TIMESTAMP,这意味着当插入新行时,MySQL将自动插入当前的日期和时间。
updated_at列使用DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。这意味着当更新行时,该列将自动更新为当前的日期和时间。
INSERT INTO table_name (id, ...) VALUES (1, ...);
在上面的示例中,我们没有指定created_at和updated_at列的值。由于DEFAULT CURRENT_TIMESTAMP,MySQL将自动插入当前的日期和时间。
UPDATE table_name SET ... WHERE id = 1;
在上面的示例中,我们没有更新updated_at列的值。由于DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,MySQL将自动更新这个列的值为当前的日期和时间。
通过使用时间戳类型,我们可以将MySQL数据库的日期和时间管理自动化,并提高查询效率。然而,仍然需要小心处理时区和数据类型的问题。