MySQL 时间戳是一个十分重要的数据类型,它可以存储日期、时间或者日期加时间。在实际的开发过程中,合理地使用时间戳可以提高数据库操作的效率,并且方便进行时间相关的查询和计算。本文将从MySQL时间戳的功能、特性和应用场景等方面展开探讨,并结合具体的代码示例来讲解。
一、MySQL 时间戳的功能和特性
MySQL 中有两种类型的时间戳,一种是 TIMESTAMP
,另一种是 DATETIME
。它们有不同的功能和特性,下面分别介绍:
TIMESTAMP
:
- 存储范围为从
1970-01-01 00:00:01
UTC 到2038-01-19 03:14:07
UTC。 - 存储的时间将会根据时区转换为UTC时间进行存储。
- 当插入一条新数据时,
TIMESTAMP
列会自动更新为当前的时间戳。
DATETIME
:
- 存储范围为
1000-01-01 00:00:00
到9999-12-31 23:59:59
。 - 不会根据时区进行转换,存储的是实际插入的日期时间。
- 插入数据时不会自动更新为当前时间,需要手动设置。
二、应用场景
记录数据的创建时间和更新时间:
CREATE TABLE example_table (
id INT PRIMARY KEY AUTO_INCREMENT,
data VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
登录后复制
在这个示例中,我们创建了一个表,记录了数据的创建时间和更新时间。通过设置 created_at
列为 DEFAULT CURRENT_TIMESTAMP
,在插入数据时自动记录当前时间戳;而设置 updated_at
列为 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
,则在数据更新时更新时间戳。
查询指定时间范围内的数据:
SELECT * FROM example_table WHERE created_at >= '2022-01-01 00:00:00' AND created_at