tblQuickFixEngineering.InstalledOn is a VarChar, not a date. Your best bet will likely be to simply slice and dice the text into a usable form.
From a skim of my tblQuickFixEngineering, I see:
- blank values
- M/D/YYYY
- MM/DD/YYYY
- MM/DD/YYYY 00:00:00
- MM/DD/YYYY hh:mm:ss
- %VERSION%
Try this:
CASE
WHEN IsDate(tblQuickFixEngineering.InstalledOn) = 0
THEN 'no date'
ELSE SUBSTRING(tblQuickFixEngineering.InstalledOn, CHARINDEX('/', tblQuickFixEngineering.InstalledOn, 4)+1, 4) + '-' +
RIGHT('0' + LEFT(tblQuickFixEngineering.InstalledOn, CHARINDEX('/', tblQuickFixEngineering.InstalledOn)-1), 2) + '-' +
RIGHT('0' + SUBSTRING(tblQuickFixEngineering.InstalledOn,
CHARINDEX('/', tblQuickFixEngineering.InstalledOn)+1,
CHARINDEX('/', tblQuickFixEngineering.InstalledOn, 4) - CHARINDEX('/', tblQuickFixEngineering.InstalledOn) -1
), 2)
END AS InstalledOnDate