Получить результат запроса с помощью функции Cast и Convert в предложении Where - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь сопоставить столбец varchar с datetime.Для этого мне нужно отфильтровать значения, которые не могут быть преобразованы в datetime:

SELECT myfield 
FROM my_table
WHERE (SELECT convert(varchar(10), cast(myfield as datetime), 112) ) = 0

Я получаю эту ошибку:

Преобразование varcharтип данных для типа данных datetime привел к значению вне допустимого диапазона.

Ответы [ 2 ]

1 голос
/ 18 апреля 2019
SELECT myfield FROM my_table
WHERE isDate(myField)=1
1 голос
/ 18 апреля 2019

Вы можете использовать try_cast вместо «cast», если вы используете SQL Server 2012 выше:

SELECT myfield FROM my_table
WHERE try_cast(myfield as datetime) is not null

Edit: Убрал выбор в предложении where.

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