我写了一个实际搜索记录的程序。 当我执行它时,它会给出一个错误:
从字符串转换日期和/或时间时转换失败。
说明:
((CONVERT(varchar, DATEPART(YYYY, Tbl_Contract.ContractDate), 101)) = @Year or @Year = '')
答案 0 :(得分:1)
您似乎将日期转换为年份值:
DATEPART(YYYY,@ContractDate)
然后尝试将其转换回日期:
CONVERT(varchar, DATEPART(YYYY, @ContractDate),101)
您可以尝试这样做:编辑
datepart(yyyy, CONVERT(datetime, @ContractDate))
答案 1 :(得分:0)
由于ContractDate
是Varchar
,您可以使用
directly
SubString(ContractDate, x, 4) = @YearString
或者您可以封装条件
Case when IsDate(ContractDate) = 1
then ((CONVERT(varchar, DATEPART(YYYY, @a), 101)))
else NULL
end