目录
[1. DATE](#1. DATE)
[2. DATETIME](#2. DATETIME)
[3. TIMESTAMP](#3. TIMESTAMP)
[4. TIME](#4. TIME)
[5. YEAR](#5. YEAR)
[6. 日期和时间的使用示例](#6. 日期和时间的使用示例)
以下SQL语句的测试可以使用命令行,或是使用SQL工具比如MySQL Workbench或SQLynx等。
在 MySQL 中,时间和日期数据类型用于存储与时间相关的数据,如何合理地利用时间的格式来存储相关的数据在实际的应用过程中很重要,目前MySQL主要支持DATE、DATETIME、TIMESTAMP、TIME和YEAR五种基础的时间类型格式。
这些数据类型可以帮助开发人员处理各种时间和日期操作,例如存储用户的出生日期、订单的创建时间等。以下是 MySQL 中主要的时间和日期数据类型的介绍:
1. DATE
-
格式 :
YYYY-MM-DD
-
范围 :
1000-01-01
至9999-12-31
-
用途:存储日期,不包含时间部分。
-
示例 :
sqlCREATE TABLE example ( birth_date DATE ); INSERT INTO example (birth_date) VALUES ('2023-06-01');
2. DATETIME
-
格式 :
YYYY-MM-DD HH:MM:SS
-
范围 :
1000-01-01 00:00:00
至9999-12-31 23:59:59
-
用途:存储日期和时间。
-
示例 :
sqlCREATE TABLE example ( created_at DATETIME ); INSERT INTO example (created_at) VALUES ('2023-06-01 12:30:45');
3. TIMESTAMP
-
格式 :
YYYY-MM-DD HH:MM:SS
-
范围 :
1970-01-01 00:00:01
UTC 至2038-01-19 03:14:07
UTC -
用途:存储 Unix 时间戳,通常用于记录事件的创建和修改时间。受时区影响,支持自动初始化和更新。
-
示例 :
sqlCREATE TABLE example ( updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); INSERT INTO example (updated_at) VALUES (CURRENT_TIMESTAMP);
4. TIME
-
格式 :
HH:MM:SS
-
范围 :
-838:59:59
至838:59:59
-
用途:存储一天中的时间部分,不包含日期。
-
示例 :
sqlCREATE TABLE example ( event_time TIME ); INSERT INTO example (event_time) VALUES ('12:30:45');
5. YEAR
-
格式 :
YYYY
-
范围 :
1901
至2155
和0000
-
用途:存储年份。
-
示例 :
sqlCREATE TABLE example ( birth_year YEAR ); INSERT INTO example (birth_year) VALUES (2023);
6. 日期和时间的使用示例
sql
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
order_date DATE,
order_time TIME,
order_datetime DATETIME,
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
INSERT INTO orders (customer_id, order_date, order_time, order_datetime)
VALUES (1, '2023-06-01', '14:30:00', '2023-06-01 14:30:00');
在这个示例中,orders
表包含多个与时间相关的列:
order_date
:存储订单日期。order_time
:存储订单时间。order_datetime
:存储订单的日期和时间。last_update
:使用TIMESTAMP
类型存储记录的最后更新时间,并在每次更新时自动刷新。
通过这些不同的时间和日期类型,MySQL 提供了灵活的方式来处理和存储时间相关的数据。