我有一個下面的轉換錯誤將varchar值「2016十月」轉換爲 int數據類型時SQL:錯誤轉換VARCHAR到int
轉換失敗。
在下面的語句:
declare @month varchar(20) = 'October'
select HolidayName, Holiday
from tblHoliday
where PortfolioID = 2 and DATEPART(Year, Holiday) = case when @month is null then 2016 else convert(varchar,2016) + '-' + @Month end
我在做什麼錯的,什麼是做這樣的事情的正確方法?
什麼是你想做? – bri
從['case'](https://msdn.microsoft.com/en-us/library/ms181765.aspx)表達式返回的各種值必須都是兼容的數據類型,即相同或相同的隱式轉換被支持。不幸的是,你對整數和字符串的選擇是不兼容的。請注意'VarChar'的默認長度是'1'。您可能需要指定較大的內容,例如'VARCHAR(4)'。 – HABO