034 - year 年份类型

该YEAR类型是1字节类型,用于表示年份值。可以将其声明为 YEAR具有4个字符的隐式显示宽度,或等效于YEAR(4)显式显示宽度。

注意:

从MySQL 8.0.19开始,不建议YEAR(4) 使用具有显式显示宽度的数据类型,并且您应该期望在将来的MySQL版本中删除对它的支持。而是使用YEAR 不具有相同含义的显示宽度。

MySQL 8.0不支持YEAR(2)旧版本MySQL中允许的两位数 数据类型。有关转换为4位的指令YEAR,请参见 两位数年份(2)的限制和迁移到4位数年份,在 MySQL的5.7参考手册。

MySQLYEAR以格式显示值 YYYY,范围为 1901to2155和 0000

YEAR接受多种格式的输入值:

  • 作为 4 位数字的字符串,范围'1901'为 '2155'.

  • 作为 4 位数字,范围1901为 2155.

  • 作为 1 或 2 位数范围内的'0' 字符串'99'。MySQL 将'0'to'69'和 '70'to'99范围内的值转换为2000to2069 和 1970to 1999范围内YEAR的值 。

  • 作为 1 或 2 位数范围内的0 数字99。MySQL 将‘1’to‘69’和 ‘70’到‘99’范围内的值转换为2001to2069 和 1979to1999 范围内YEAR的值 。

    插入数字的结果的0显示值为0000,内部值为0000。要插入零并将其解释为2000,请将其指定为字符串'0''00'

  • 作为返回上下文中可接受的值的函数的结果YEAR,例如 NOW().

如果未启用严格 SQL 模式,MySQL 会将无效 YEAR值转换为0000. 在严格 SQL 模式下,尝试插入无效 YEAR值会产生错误。

-- 年份类型:year,默认四位
CREATE TABLE test_year (a YEAR)

-- 查询表结构
DESC test_year

-- 作为 4 位数字的字符串,范围'1901'为 '2155'.
-- 作为 4 位数字,范围1901为 2155.
INSERT INTO test_year VALUES (1991)
INSERT INTO test_year VALUES ('2155')

-- 作为 1 或 2 位数范围内的0 数字99。
-- MySQL 将‘1’to‘69’和 ‘70’到‘99’范围内的值转换为2001to2069 和 1979to1999 范围内YEAR的值 。
INSERT INTO test_year VALUES (1)
INSERT INTO test_year VALUES ('70')

-- 插入数字的结果的0显示值为0000,内部值为0000。
-- 要插入零并将其解释为2000,请将其指定为字符串'0'或'00'。
INSERT INTO test_year VALUES (0)
INSERT INTO test_year VALUES ('0')

-- 查询所有数据
SELECT * FROM test_year

-- 删除检索数据
DELETE FROM test_year WHERE a = 0

 

你可能感兴趣的:(数据库,数据库)