2015-10-01 185 views
0

大家下午好!將78.3 F(nvarchar)轉換爲78.3(數字)

試圖從我的SQL服務器上存儲爲「78.3 F」的數據庫獲取溫度,並使其僅爲數字「78.3」。數據庫將此字段作爲nvarchar。我想:

select 
Cast(Left(Paint_Environ.Booth1_Temp, Len(Paint_Environ.Booth1_Temp) - 2) As NUMERIC(4,1)) As Temp 
from Paint_Environ 

但得到一個錯誤說「錯誤轉換數據類型爲nvarchar以數字」有沒有更好的方式來爲nvarchar轉換爲數字的東西???

在此先感謝!

馬特

+1

你的代碼應該在樣本日期「78.3 F」上工作,你有任何其他格式的數據? – EricZ

回答

1

正如我在評論中提到的,你的代碼應該與數據'78.3 F'

的工作,你可以試試這個

SELECT 
    CAST(REPLACE(Booth1_Temp,'F','') AS NUMERIC(4,1)) As Temp 
FROM Paint_Environ 

UPDATE: 您可以用此啓動調試到看哪種數據格式給你錯誤

SELECT Booth1_Temp 
FROM Paint_Environ 
WHERE ISNUMERIC(REPLACE(Booth1_Temp,'F','')) <> 1 
+0

感謝您的快速響應,EricZ!儘管我仍然遇到了這個錯誤。我會嘗試更換,也許修剪...會提醒。 – user3593083

+0

@ user3593083,請參閱我的更新 – EricZ

+0

如果我使用RTrim(替換(Paint_Environ.Booth1_Temp,'F','')) – user3593083