• You need to find the rows that don't convert. Try this out to find the offending rows:

    CREATE TABLE #validdatesasints ( date INT PRIMARY KEY )

    DECLARE @ValidDateStartValue DATE= '19000101' , --technically speaking you can go to the year 0001, but I wouldn't bother and it makes the lookup table v large

    @ValidDateEndValue DATE= '21000101'

    --same as above, can go to year 9999, but seems silly

    DECLARE @Top INT= DATEDIFF(DAY, @ValidDateStartValue, @ValidDateEndValue) + 1

    INSERT INTO #validdatesasints

    ( date

    )

    SELECT TOP ( @Top )

    CONVERT(INT, CONVERT(VARCHAR, DATEADD(day,

    ROW_NUMBER() OVER ( ORDER BY ( SELECT

    NULL

    ) ) - 1,

    @ValidDateStartValue), 112))

    FROM master.sys.columns a ,

    master.sys.columns b

    --find offending rows

    SELECT *

    FROM [Monitor].[dbo].[Job_Monitor]

    WHERE LASTRUNDATE NOT IN ( SELECT date

    FROM #validdatesasints )

    AND LASTRUNDATE IS NOT NULL