2014-07-14 43 views
1

我想下面的查詢轉換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

+0

爲什麼你需要轉換位爲INT瑪貝有一個其他的方式來解決你的問題。你可以切換行爲:'SELECT CONVERT(BIT,CASE @Input WHEN 1 THEN 1 ELSE 0 END)' – GOB

+0

其實wats問題?我不能清楚地得到你的問題moto .. – sarathkumar

+0

@sarathkumar爲什麼'> 1'值doesn' t顯示「BIT」數據類型轉換的任何錯誤?它背後的轉換功能是什麼?它與其他轉換(如INT到TINYINT)有何不同? – Jesuraja

回答

0

您會收到算術溢出的int值設置爲tinyint因爲對int值範圍大於tinyint(你知道的。「微小」(在微小的聲音))。

ANF如果使用bit這隻有在計算機基礎O1,基本價值,我覺得你得到的值是1,因爲它有一個值,如果沒有,你會得到0