-2

尝试将 Year 的值(即 2020)插入数据类型为 TINYINT 的列中,这是不可能的,因为 TINYINT 的存储范围为 0-255。如果我想存储值 2020 而不使用更大的整数列(即不将数据类型从 TINYINT 更改为 INT、BIGINT 等),是否有解决方法/解决方案(使用 Convert/Cast 或任何其他可能的方式)我正在使用SQL 服务器管理工​​作室。请帮忙。

4

2 回答 2

0

我知道 2020 不能保存到 tinyint,需要将数据类型更改为 int、bigint、varchar 等。

进一步阐述我的问题陈述,我被要求以某种方式输入年份TINYINT

  1. 在不更改数据类型的情况下,以及
  2. 通过使用 SQL Server 中的内置DATENAMEgetdate()函数。

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

CONVERT(TINYINT,SUBSTRING(CAST(DATENAME(YEAR,GETDATE())AS CHAR),3,2))
于 2020-04-12T23:31:15.723 回答
-1
alter yourTable alter column year varchar(4);

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

alter yourTable alter column year smallint;
于 2020-04-12T01:36:38.583 回答