mysql时间日期类型
时间: 2025-03-20 15:19:56 浏览: 29
### MySQL 中的时间和日期数据类型
MySQL 提供了几种用于处理时间和日期的数据类型,这些类型可以满足不同的应用场景需求。以下是每种类型的详细介绍及其使用方法:
#### 1. **DATE**
`DATE` 类型仅存储日期值,不包含时间部分。其格式为 `YYYY-MM-DD`,其中年份范围是从 `1000` 到 `9999`[^1]。
示例:
```sql
CREATE TABLE example_date (
id INT PRIMARY KEY,
date_column DATE
);
INSERT INTO example_date (id, date_column) VALUES (1, '2023-10-05');
```
---
#### 2. **DATETIME**
`DATETIME` 类型同时存储日期和时间值,格式为 `YYYY-MM-DD HH:MM:SS`。它的取值范围较大,适合需要高精度时间的应用场景。
示例:
```sql
CREATE TABLE example_datetime (
id INT PRIMARY KEY,
datetime_column DATETIME
);
INSERT INTO example_datetime (id, datetime_column) VALUES (1, '2023-10-05 14:30:00');
```
---
#### 3. **TIMESTAMP**
`TIMESTAMP` 类型也存储日期和时间值,但与 `DATETIME` 不同的是,它占用更少的空间(通常为 4 字节),并且具有自动更新的功能。默认情况下,它可以记录插入或修改数据时的最新时间戳[^2]。
需要注意的是,`TIMESTAMP` 的取值范围较小,从 `'1970-01-01 00:00:01' UTC` 到 `'2038-01-19 03:14:07' UTC`。
示例:
```sql
CREATE TABLE example_timestamp (
id INT PRIMARY KEY,
timestamp_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```
---
#### 4. **TIME**
`TIME` 类型主要用于表示一天内的某个时刻或时间段差值,格式为 `HH:MM:SS` 或 `H:MM:SS`(对于较大的小时数)。它的取值范围可以从 `-838:59:59` 到 `838:59:59`。
示例:
```sql
CREATE TABLE example_time (
id INT PRIMARY KEY,
time_column TIME
);
INSERT INTO example_time (id, time_column) VALUES (1, '14:30:00');
```
---
#### 5. **YEAR**
`YEAR` 类型专门用于存储年份信息,支持两种格式:`YYYY` 和两位数字形式 `YY`。四位数字的形式更为常用,有效范围是 `1901` 至 `2155`。
示例:
```sql
CREATE TABLE example_year (
id INT PRIMARY KEY,
year_column YEAR
);
INSERT INTO example_year (id, year_column) VALUES (1, 2023);
```
---
### 数据合法性约束
在 MySQL 表设计中,如果尝试向某一列插入超出定义范围或不符合格式的数据,则会引发错误并拒绝插入操作。这是因为 MySQL 需要确保表中的数据始终合法且可信[^3]。
---
### 总结
以上介绍了 MySQL 中常见的几种时间与日期数据类型以及它们的特点。开发者应根据实际业务需求选择合适的类型来优化性能和空间利用率。
```sql
-- 综合示例
CREATE TABLE events (
event_id INT AUTO_INCREMENT PRIMARY KEY,
event_name VARCHAR(100),
start_date DATE,
end_date DATE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```
阅读全文
相关推荐













