Как выявить ошибки при приведении столбца? - PullRequest
2 голосов
/ 10 апреля 2019

У меня есть таблица, которая все NVARCHAR. Я пытаюсь превратить колонку в дату; однако в столбце есть какое-то значение, которое не будет приведено к дате и выдает ошибку на полпути.

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

SELECT id, 
CASE WHEN CAST(date_of_birth AS DATE) = error
     THEN 1
     ELSE 0
FROM TABLE1

Table1

id    date_of_birth
1     05/05/1934
2     feathers
3     06/06/1843

Ожидаемые результаты

id    date_of_birth
1     0
2     1
3     0

Какой-нибудь совет, как изолировать проблемные строки?

Ответы [ 2 ]

6 голосов
/ 10 апреля 2019

Использование TRY_CAST():

SELECT id, 
       (CASE WHEN TRY_CAST(date_of_birth AS DATE) IS NULL AND date_of_birth IS NOT NULL
             THEN 1
             ELSE 0
        END) as is_bad_date_of_birth
FROM TABLE1;
1 голос
/ 10 апреля 2019

Для идентификации строк ошибок используйте функцию ISDATE:

SELECT * FROM TABLE WHERE ISDATE(date_of_birth)=0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...