MySQL YEAR 数据类型使用指南
在本教程中,我们将向您介绍 MySQL YEAR 数据类型,以及 YEAR 数据类型的使用规则。
在 MySQL 中, YEAR 数据类型用来存储年份值。
YEAR 数据类型占用 1 个字节,YEAR 值的范围为从 1901 到 2155, 还有 0000。
定义为 YEAR 数据类型的列可以接受多种输入格式,包括:
- 4 位数字的年份值,从
1901to2155。 - 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