2012-11-16 166 views
-1

我寫了一個實際上搜索記錄的過程。 當我執行它,它給出了表示一個錯誤:從字符串變換日期和/或時間時轉換日期和/或時間從字符串轉換失敗

轉換失敗。

聲明:

((CONVERT(varchar, DATEPART(YYYY, Tbl_Contract.ContractDate), 101)) = @Year or @Year = '') 
+0

什麼-1?還沒有評論.. –

+0

ContractDate是一個日期時間字段? – bummi

+0

不,它不是datetime字段,ContractDate是varchar –

回答

0

由於ContractDateVarchar您可以解析directly

SubString(ContractDate, x, 4) = @YearString 

,或者你可以封裝的條件

Case when IsDate(ContractDate) = 1 
     then ((CONVERT(varchar, DATEPART(YYYY, @a), 101))) 
     else NULL 
end 
1

看來,你的日期轉換爲年值:

DATEPART(YYYY,@ContractDate) 

,然後試圖轉換回日期:

CONVERT(varchar, DATEPART(YYYY, @ContractDate),101) 

你可以試試t他的:編輯

datepart(yyyy, CONVERT(datetime, @ContractDate)) 
+0

它不起作用,它說同樣的錯誤..! –

+0

ContractDate是一個varchar字段,不是日期時間, –

+0

準確。這會將它從varchar轉換爲日期時間。 – jim31415

相關問題