返されたデータをSQL Server 2016で変更するためにクエリを実行していますが、変換エラーが発生しています(文字列から日付および/または時刻を変換すると変換できませんでした)。NULLを使用してNULL日付を変換する
SELECT jobs.name,
CASE WHEN jact.start_execution_date IS NULL THEN 'No Execution'
ELSE jact.start_exeuction_date
END AS start_execution_date
FROM msdb.dbo.sysjobactivity jact
INNER JOIN msdb.dbo.sysjobs jobs
ON jact.job_id = jobs.job_id
start_execution_date列はDATETIME型です。この列のdatetime形式は(YYYY-MM-DD HH:MM:SS.mmm)またはNULLです。私はコードを少し読みやすくするためにCOALESCEを使ってみましたが、それもうまくいかず、同じエラーが出ました。返された結果セットをエラーのポイントまで表示すると、この列にNULLを持つ最初のローで失敗しています。私は間違っている/考えていないことは何ですか?
SELECT COALESCE(jact.start_execution_date, 'No Execution')
あなたのケースでは、異なる戻り値の型を持つ 'case'を使用することはできません。 –