INSERT 语句 - SQL 服务器 - 错误 -Nvarchar 值‘2020’溢出 TINYINT 列

INSERT statement - SQL server- Error -Nvarchar value ‘2020’ overflowed TINYINT column

尝试将 Year 的值(即 2020)插入数据类型为 TINYINT 的列中,这是不可能的,因为 TINYINT 的存储范围为 0-255。如果我想存储值 2020 而不使用更大的整数列(即不将数据类型从 TINYINT 更改为 INT、BIGINT 等),是否有 workaround/solution(使用 Convert/Cast 或任何其他可能的方式) 我正在使用 SQL SERVER Management Studio。 请帮忙。

alter yourTable alter column year varchar(4);

如果您需要作为数字,您至少需要使用 smallint(-32000 到 32000)

alter yourTable alter column year smallint;

我了解到2020无法保存为tinyint,数据类型需要改为int,bigint,varchar等

进一步阐述我的问题陈述,我被要求以某种方式在 TINYINT:

中输入年份
  1. 不改变数据类型,
  2. 通过在 SQL 服务器中使用内置的 DATENAMEgetdate() 函数。

因此,我使用以下内容按照上述两个要求存储了 20

CONVERT(TINYINT,SUBSTRING(CAST(DATENAME(YEAR,GETDATE())AS CHAR),3,2))