繁体   English   中英

在 SQL Server 2014 中将 varchar(10) 转换为 int

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM