MySQL YEAR 数据类型介绍
MySQL 的 YEAR
数据类型用于存储年份值。 YEAR
数据类型仅占用 1 个字节的存储空间,可以存储从 1901 到 2155 年之间的值。 YEAR
数据类型支持零填充,可以设置显示的位数。
语法
YEAR
数据类型的语法如下:
YEAR[(4)]
其中,4 表示 YEAR
数据类型需要显示的位数。如果不指定位数,则 YEAR
数据类型默认为 4 位。
使用场景
YEAR
数据类型主要用于存储年份值,特别是在需要限制年份范围的情况下非常有用。 YEAR
数据类型还可以用于存储与年份相关的数据,如年龄和年份差等。通常情况下,YEAR
数据类型会和其他数据类型一起使用,例如 DATE
和 TIMESTAMP
数据类型,以便在需要计算年份差时进行计算。
示例
下面是两个示例,演示了如何使用 YEAR
数据类型:
示例 1:存储年份值
假设我们有一个名为 users
的表,其中包含 id
和 birth_year
两列,我们可以使用以下命令创建该表:
CREATE TABLE users (
id INT PRIMARY KEY,
birth_year YEAR(4)
);
现在,我们可以向 users
表中插入数据:
INSERT INTO users (id, birth_year)
VALUES
(1, 1990),
(2, 1985),
(3, 2000);
然后,我们可以使用以下命令查询 users
表:
SELECT id, birth_year FROM users;
输出结果如下:
+----+------------+
| id | birth_year |
+----+------------+
| 1 | 1990 |
| 2 | 1985 |
| 3 | 2000 |
+----+------------+
示例 2:计算年份差
假设我们有一个名为 employees
的表,其中包含 id
、name
和 hire_date
三列,hire_date
列存储员工的入职日期,我们可以使用以下命令创建该表:
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
hire_date DATE
);
现在,我们可以向 employees
表中插入数据:
INSERT INTO employees (id, name, hire_date)
VALUES
(1, 'John', '2015-01-01'),
(2, 'Mary', '2018-03-15'),
(3, 'Peter', '2020-05-10');
然后,我们可以使用以下命令计算每个员工的年份差:
SELECT name, YEAR(CURDATE()) - YEAR(hire_date) AS years_of_service
FROM employees;
输出结果如下:
+-------+------------------+
| name | years_of_service |
+-------+------------------+
| John | 7 |
| Mary | 4 |
| Peter | 2 |
+-------+------------------+
结论
YEAR
数据类型是一种用于存储年份值的数据类型。它可以存储从 1901 年到 2155 年之间的任何年份值,并且只占用 1 个字节的存储空间。它通常用于存储日期中的年份信息,但不包括月份和日期。由于 YEAR
数据类型只存储年份,因此它比 DATETIME
或 TIMESTAMP
数据类型更节省存储空间。但是,需要注意的是,YEAR
数据类型不能存储任何时间或日期信息,因此它不能用于存储完整的日期或时间戳信息。
在实际的数据库应用中,YEAR
数据类型通常用于存储年份信息,例如员工入职年份、公司成立年份等。使用 YEAR
数据类型可以帮助节省存储空间,并且在执行一些年份计算时也更方便。