MySQL YEAR 数据类型使用指南
在本教程中,我们将向您介绍 MySQL YEAR
数据类型,以及 YEAR
数据类型的使用规则。
在 MySQL 中, YEAR
数据类型用来存储年份值。
YEAR
数据类型占用 1 个字节,YEAR
值的范围为从 1901
到 2155
, 还有 0000
。
定义为 YEAR
数据类型的列可以接受多种输入格式,包括:
- 4 位数字的年份值,从
1901
to2155
。 - 4 位数字的年份值的字符串形式,从
'1901'
到'2155'
。 - 2 位数字的年份值,从
0
到99
,并按如下规则转换为 4 位数年份:1
到69
转换为2001
到2069
。70
到99
转换为1970
到1999
。0
转换为0000
。
- 2 位数字的年份值的字符串形式,从
'0'
到'99'
,并按如下规则转换为 4 位数年份:'0'
到'69'
转换为2000
到2069
。'70'
到'99'
转换为1970
到1999
。
若未启用严格 SQL 模式,MySQL 会将无效的 YEAR
值转为 0000
。在严格 SQL 模式下,插入无效的 YEAR
值时会产生错误。
MySQL YEAR
语法
这是 YEAR
数据类型的语法:
column_name YEAR
在 MySQL 8.0.19 之前的版本中,YEAR
可以使用显示宽度属性,如: YEAR(2)
。不过,现在显示宽度属性已经不再被推荐使用。并且 MySQL 8 以后也不支持 YEAR(2)
了。请直接使用 YEAR
。
MySQL YEAR
实例
让我通过一个实例看一下 YEAR
的用法。
首先,让我们创建表 test_year
, 它有包含一个 YEAR
类型的列 created_year
。
CREATE TABLE test_year(
id INT AUTO_INCREMENT PRIMARY KEY,
created_year YEAR NOT NULL
);
接着,让我们使用 4 位数年份插入一行:
INSERT INTO test_year (created_year)
VALUES (2022);
然后,让我们使用 2 位数年份插入 2 行:
INSERT INTO test_year (created_year)
VALUES (10), (98);
让我们再插入一个 0
值:
INSERT INTO test_year (created_year)
VALUES (0), ('0');
最后,让我们通过查询表中的数据,验证一下是否插入正确:
SELECT * FROM test_year;
+----+--------------+
| id | created_year |
+----+--------------+
| 1 | 2022 |
| 2 | 2010 |
| 3 | 1998 |
| 4 | 0000 |
| 5 | 2000 |
+----+--------------+
这里,我们可以看出,数字 0
转换为了 0000
,而字符串 '0'
转换为了 2000
。
结论
在本教程中,我们向您介绍了 MySQL YEAR
数据类型,以及 YEAR
数据类型的使用规则。
YEAR
可接受 4 位年份值和 2 位年份值。- 2 位数字年份
1
到69
转换为2001
到2069
。 - 2 位数字年份
70
到99
转换为1970
到1999
。 - 数字
0
转换为0000
。 - 字符串
'0'
转换为2000