Or “I’m filtering on ISDATE(dt) = 1. Why am I still getting conversion errors?”
Well, to put it simply, because SQL’s evaluating the where clause in a different order to what you may have expected.
Let’s try a simple example.
SELECT * FROM tbl_TestingConversion WHERE ISDate(TheDate)=1 AND CAST(TheDate AS DATETIME) > '2007/07/01'