次の点を考慮してください。
SELECT [DOB] = CASE WHEN [DOB] = '-' then 'invalid date' ELSE cast([DOB] as datetime)
END
FROM myTable where myID = 73351
の場合DOB = '-'、次のエラー メッセージが表示されます。
文字列から日時を変換する際に変換に失敗しました。
これは、SQL ServerがDOBをdatetime印刷するだけであるにもかかわらず、 DOBをキャストしようとしていることを示しているよう'invalid date'です。
'invalid date'ただし、 のときに正しく返されるこれを考慮してDOB = '-'ください。
SELECT [DOB] = CASE WHEN [DOB] = '-' then 'invalid date' ELSE 'valid date'
END
FROM myTable where myID = 73351
'invalid date'最初のステートメントをいつ返すようにするにはどうすればよいDOB = '-'ですか?