不知道爲什麼此轉換失敗。SQL Server 2008 - 從字符串到int的轉換失敗
SELECT CAST('32.999' AS INT)
引發錯誤說轉換VARCHAR值時'32 0.000' 到數據 int類型
轉換失敗。
我知道我可以將其轉換爲Decimal
,然後將其轉換爲Int
但爲什麼32.000沒有被轉化爲Int
直接?
我在這裏錯過了什麼嗎?
- 編輯 -
我不關心小數點。我希望SQL忽略它們。
不知道爲什麼此轉換失敗。SQL Server 2008 - 從字符串到int的轉換失敗
SELECT CAST('32.999' AS INT)
引發錯誤說轉換VARCHAR值時'32 0.000' 到數據 int類型
轉換失敗。
我知道我可以將其轉換爲Decimal
,然後將其轉換爲Int
但爲什麼32.000沒有被轉化爲Int
直接?
我在這裏錯過了什麼嗎?
- 編輯 -
我不關心小數點。我希望SQL忽略它們。
32.000不能準確地表示爲由於小數一個int。相反,如果你想要一個帶有小數的數值,你可以使用浮點(或數字)數據類型。
Select CAST('32.000' as float)
編輯:誤讀你的問題一點點。
我假設SQL嘗試,最好保持你的意圖。當它讀入你正試圖施放的數值有十進制值時,它會拒絕它。
好點,但我不在乎小數點。我希望SQL忽略它們。 – Asdfg
如果您將'32 .000'轉換爲浮點數,則該值的顯示將爲'32'。它不會嘗試顯示.000 – Zhais
@Asdfg的十進制值,SQL不會讓你忽略它們,除非你明確地告訴它這樣做。一種方法是按照建議「CAST」。另一種方法是不要把它們放在首位。 –