尝试将 Year 的值(即 2020)插入数据类型为 TINYINT 的列中,这是不可能的,因为 TINYINT 的存储范围为 0-255。如果我想存储值 2020 而不使用更大的整数列(即不将数据类型从 TINYINT 更改为 INT、BIGINT 等),是否有解决方法/解决方案(使用 Convert/Cast 或任何其他可能的方式)我正在使用SQL 服务器管理工作室。请帮忙。
问问题
290 次
2 回答
0
我知道 2020 不能保存到 tinyint,需要将数据类型更改为 int、bigint、varchar 等。
进一步阐述我的问题陈述,我被要求以某种方式输入年份TINYINT
:
- 在不更改数据类型的情况下,以及
- 通过使用 SQL Server 中的内置
DATENAME
和getdate()
函数。
因此,我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 回答