Найдите недопустимые даты в SQL Server 2008

У меня есть 300 000 таблиц строк; один из столбцов является varchar (), но он действительно содержит дату xx/xx/xxxx или x/x/xxxx или подобный. Но выполнение следующего теста приводит к ошибке:

SELECT CAST(MyDate as Datetime) FROM MyTable

Проблема состоит в том, что это не говорит мне в который строка …

Я выполнил ряд “ручных” обновлений пробной версией ошибка и выполнил простые обновления для фиксации их, но там получен, чтобы быть некоторыми странными значениями, которые должны или быть удалены или зафиксированы.

Например, я выполнил простой тест, который зафиксировал приблизительно 40 строк:

UPDATE MyTable SET MyDate = REPLACE(MyDate, '/000','/200') FROM MyTable WHERE MyDate like ('%/000%’)
UPDATE MyTable SET MyDate = REPLACE(MyDate, '/190','/199') FROM MyTable WHERE MyDate like ('%/190%’)

Это зафиксировало довольно много странных строк, которые имели даты как 01.01.03 и такой. (Даты располагаются с 1998 до 2010).

Однако я хотел бы знать, какие строки перестали работать в вышеупомянутом выборе.

Каков был бы лучший способ распечатать их так, я могу или удалить их, отредактировать их или видеть, что сделать?Спасибо.

8
задан Martin Marconcini 17 June 2010 в 10:48
поделиться