-1

実際にレコードを検索する手順を書きました。実行すると、次のようなエラーが表示されます。

文字列から日時を変換する際に変換に失敗しました。

声明:

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

2 に答える 2

1

日付を年の値に変換しているようです:

DATEPART(YYYY,@ContractDate)

そして、それを日付に変換しようとしています:

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

あなたはこれを試すかもしれません:編集

datepart(yyyy, CONVERT(datetime, @ContractDate))
于 2012-11-16T17:59:51.663 に答える
0

なので、で 解析ContractDateするVarcharことができますdirectly

SubString(ContractDate, x, 4) = @YearString 

または、条件をカプセル化できます

Case when IsDate(ContractDate) = 1 
      then ((CONVERT(varchar, DATEPART(YYYY, @a), 101))) 
      else NULL 
end
于 2012-11-16T18:01:13.047 に答える