我想下面的查询转换INT至BIT
DECLARE @Input INT = 300
DECLARE @Ouput TINYINT
SET @Ouput = @Input
SELECT @Ouput
虽然执行上面的语句,我收到以下错误。对于数据类型TINYINT,值
算术溢出错误= 300
输入值超过极限,所以显示错误。
我尝试另一个查询
DECLARE @Input INT = 300
DECLARE @Ouput BIT
SET @Ouput = @Input
SELECT @Ouput
当我执行语句,我真的不知道,它不显示任何错误。如果输入值为<> 0
(负值或正值),则输出值始终为1
。
为什么你需要转换位为INT玛贝有一个其他的方式来解决你的问题。你可以切换行为:'SELECT CONVERT(BIT,CASE @Input WHEN 1 THEN 1 ELSE 0 END)' – GOB
其实wats问题?我不能清楚地得到你的问题moto .. – sarathkumar
@sarathkumar为什么'> 1'值doesn' t显示“BIT”数据类型转换的任何错误?它背后的转换功能是什么?它与其他转换(如INT到TINYINT)有何不同? – Jesuraja