我寫了一個實際上搜索記錄的過程。 當我執行它,它給出了表示一個錯誤:從字符串變換日期和/或時間時轉換日期和/或時間從字符串轉換失敗
轉換失敗。
聲明:
((CONVERT(varchar, DATEPART(YYYY, Tbl_Contract.ContractDate), 101)) = @Year or @Year = '')
我寫了一個實際上搜索記錄的過程。 當我執行它,它給出了表示一個錯誤:從字符串變換日期和/或時間時轉換日期和/或時間從字符串轉換失敗
轉換失敗。
聲明:
((CONVERT(varchar, DATEPART(YYYY, Tbl_Contract.ContractDate), 101)) = @Year or @Year = '')
由於ContractDate
是Varchar
您可以解析directly
與
SubString(ContractDate, x, 4) = @YearString
,或者你可以封裝的條件
Case when IsDate(ContractDate) = 1
then ((CONVERT(varchar, DATEPART(YYYY, @a), 101)))
else NULL
end
看來,你的日期轉換爲年值:
DATEPART(YYYY,@ContractDate)
,然後試圖轉換回日期:
CONVERT(varchar, DATEPART(YYYY, @ContractDate),101)
你可以試試t他的:編輯
datepart(yyyy, CONVERT(datetime, @ContractDate))
什麼-1?還沒有評論.. –
ContractDate是一個日期時間字段? – bummi
不,它不是datetime字段,ContractDate是varchar –