所以我上周在Sql课程中学到了如何将字符串转换为整数。我们用于此的表是基于时区的。所以它是'-5'小时偏移。
为了做到这一点,我们必须将字符串转换为DECIMAL,然后转换为SMALLINT。一旦我知道,这很简单,那不是我的问题所在。
好奇的是,为什么SMALLlNT不会采取负号,但是Decimal可以做到。根据规格,SMALLINT仍然可以转到-32768。那么有人知道这是否仍然存在于所有编码语言中,还是仅仅是SQL特定的?以及不允许它施放的东西答案 0 :(得分:0)
我不明白你为什么要开始做任何演员?根据{{3}}(参见页面下面的表1/3),T-SQL支持varchar和smallint之间的隐式转换。
DECLARE @negative_varchar VARCHAR(10) = '-5'
DECLARE @negative_smallint SMALLINT = CONVERT(SMALLINT, @negative_varchar)
DECLARE @negative_smallint_implicit SMALLINT = @negative_varchar
SELECT @negative_varchar, @negative_smallint, @negative_smallint_implicit
可生产
---------- ------ ------
-5 -5 -5
答案 1 :(得分:-1)
这不是我的意思(声明@s为nvarchar @ S = -5
(50)= CAST(@s AS SMALL INT)
再次你必须从十进制转换然后小int。即时通讯询问流程背后的底层代码。
例如,其中一个字节是否保持数字是正数还是负数......