[英]Convert a varchar(10) into an int in SQL Server 2014
是否可以在 SQL Server 2014 中将varchar(10)
转换为int
?
我尝试了以下代码,但出现转换错误
Declare @Random varchar(10)
set @Random = CONVERT(varchar, right(newid(),10))
Declare @rand int = cast(@Random as int)
select @rand
你可以试试:
SELECT TRY_CAST(RIGHT(CAST(convert(VARBINARY, NEWID(), 1) AS BIGINT),10) AS INT);
或者,如果您只使用 9 个数字:
SELECT RIGHT(CAST(convert(VARBINARY, NEWID(), 1) AS BIGINT),9) + 0;
是否可以在 SQL Server 2012 下将 varchar(10) 转换为 int?
是的,如果varchar(10)
字符串都是数字字符并且字符串在int
范围内:
-2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
换句话说,这将起作用:
select cast('2147483647' as int)
这不会:
select cast('2147483648' as int)
我尝试了以下代码,但出现转换错误
您问题中的代码不是测试您是否可以将字符串转换为整数,而是测试是否可以转换任何随机字符串。 您的随机字符串包含无法转换为整数的字母字符,因此您会收到转换错误。 但即使您将随机字符串限制为数字,您仍然只能在溢出int
之前将数字字符串转换为2147483647
。 我不认为生成(不那么)满足这个标准的随机字符串会证明很多。 您的问题的简单答案是肯定的,您可以将字符串转换为 int,只要字符串满足 int 的要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.