Попробуйте использовать TRY_CONVERT
:
SELECT
COALESCE(TRY_CONVERT(varchar(10),
TRY_CONVERT(datetime, col, 101),
120), col) AS col_as_date
FROM yourTable;
Маска формата 101 при первом вызове TRY_CONVERT
соответствует формату даты mm/dd/yyyy
, который соответствует вашим данным, если у него действительная дата . Для недопустимых значений, таких как comment
, TRY_CONVERT
вернет NULL
. Затем мы вызываем TRY_CONVERT
с маской 120 для генерации текстовых дат в формате yyyy-mm-dd
.