Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Здравствуйте, вопрос по поводу ошибки T-SQL "Преобразование типа данных varchar в тип данных datetime "

Коновалов Вадим Мастер (2317), на голосовании 4 года назад
В общем есть ошибка
"Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона"

даты берутся из xml документа, в виде текста (не надо только говорить что так плохо и тд, мне с чем дали, с тем и работаю. выбирать нее приходится) в формате "24.04.1941" . Обрабатывает их сторонняя программа, которая в лог только ошибку кидает, а какая запись кривая не говорит, 100000 записей, и мне нужно найти корявый.

Проверял уже как: писал в excel "=ДАТА (ПРАВСИМВ ([@ДатаРожд]; 4);ПСТР ([@ДатаРожд]; 4;2);ЛЕВСИМВ ( [@ДатаРожд]; 2) )", далее сортировал уже эту дату, и проверял чтоб > 1900 && < 2019
проверял чтобы на том месте где день было >0 и <32, аналогично месяцы
проверял чтобы после преобразования даты число из строки и день преобразованный совпадали (позволяет отловить "31 февраля",ибо 31 февраля конвертируется как 2 марта)

Таким макаром отловил ошибки в других файлах (их много), а в одном оставшемся не катит. Есть идеи ?
Голосование за лучший ответ
А Мудрец (14639) 4 года назад
При помощи xpath вытяните все теги с датой и напишите простую утилитку (на C# например), которая пробежит по ним и по заданному формату будет парсить в дату. Сразу увидите, где кривая строка.
Я бы так сделал.
Похожие вопросы