MySQL 中的 DATEIME 和 TIMESTAMP 类型都用于存储日期和时间,但它们的存储和工作方式不同。下面详细讲解它们的区别说明。
DATETIME 类型
DATETIME 类型用于存储日期和时间。它使用 8 个字节存储时间和日期,其中前 4 个字节存储日期值,后 4 个字节存储时间值。DATETIME 类型可以存储从 1000 年到 9999 年的时间范围,精度为秒。
CREATE TABLE test_date_time (
id INT UNSIGNED PRIMARY KEY,
created_time DATETIME
);
示例1
INSERT INTO test_date_time (id, created_time) VALUES (1, NOW());
示例2
SELECT * FROM test_date_time WHERE created_time < '2022-01-01';
TIMESTAMP 类型
TIMESTAMP 类型也用于存储日期和时间。它也使用 8 个字节存储时间和日期,其中与 DATETIME 类型不同的是,前 4 个字节存储时间戳值,后 4 个字节存储小数部分,精度为毫秒。
CREATE TABLE test_time_stamp (
id INT UNSIGNED PRIMARY KEY,
created_time TIMESTAMP
);
示例1
INSERT INTO test_time_stamp (id, created_time) VALUES (1, NOW());
示例2
SELECT * FROM test_time_stamp WHERE created_time < '2022-01-01';
区别
-
存储方式不同。DATETIME 存储的是日期和时间的字节格式,而 TIMESTAMP 存储的是时间戳的字节格式。
-
时间范围不同。DATETIME 范围是从 1000 年到 9999 年,而 TIMESTAMP 只能存储在 1970 年到 2038 年之间的时间戳。
-
精度不同。DATETIME 精度为秒,TIMESTAMP 精度为毫秒。
-
自动更新的行为不同。当一个 DATETIME 列被更新时,它的值不会自动更改。相反,当一个 TIMESTAMP 列被更新时,它的值会被自动更新为当前的时间戳。
基于这些区别,我们需要根据实际需要,选择合适的数据类型,从而尽可能地优化数据存储和查询效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql中 datatime与timestamp的区别说明 - Python技术站