Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Возвращает значение, приведение к указанному типу данных, если приведение выполнено успешно; в противном случае возвращается NULL.
Соглашения о синтаксисе Transact-SQL
Синтаксис
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Аргументы
data_type
Тип данных, к которому следует привести expression.
length
Указываемое дополнительно целое число, обозначающее длину целевого типа данных, который допускает указание длины пользователем. Максимальное значение длины составляет 8 000 байт.
выражение
Значение для приведения.
style
Необязательное целочисленное выражение, указывающее способ TRY_CONVERT перевода выражения функции.
стиль принимает те же значения, что и функции. См. описание CAST и CONVERT.
Значение data_type определяет диапазон допустимых значений. Если стиль равенNULL, возвращаетсяTRY_CONVERTNULL.
Типы возвращаемых данных
Возвращает значение, приведение к указанному типу данных, если приведение выполнено успешно; в противном случае возвращается NULL.
Замечания
TRY_CONVERT принимает значение, переданное ему, и пытается преобразовать его в указанный data_type. Если приведение выполнено успешно, TRY_CONVERT возвращает значение в качестве указанного data_type; если возникает ошибка, NULL возвращается. Однако если вы запрашиваете преобразование, которое явно не разрешено, ошибка TRY_CONVERT завершается ошибкой.
TRY_CONVERT — это зарезервированное ключевое слово, начиная с уровня 110совместимости.
Эта функция может быть удалена на серверы с SQL Server 2012 (11.x) и более поздними версиями. Он не удален на серверы с версией более ранней версии, чем SQL Server 2012 (11.x).
Примеры
А. TRY_CONVERT возвращает значение NULL
В следующем примере показано, что
TRY_CONVERTвозвращаетсяNULLпри сбое приведения.SELECT CASE WHEN TRY_CONVERT(FLOAT, 'test') IS NULL THEN 'Cast failed' ELSE 'Cast succeeded' END AS Result; GOЭтот запрос возвращает результат .
Cast failedВ следующем примере показано, что выражение должно иметь ожидаемый формат.
SET DATEFORMAT dmy; SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result; GOЭтот запрос возвращает результат .
NULL
B. TRY_CONVERT возвращает ошибку
В следующем примере показано, что TRY_CONVERT возвращает ошибку, когда приведение явно не разрешено.
SELECT TRY_CONVERT(XML, 4) AS Result;
GO
Результатом этого утверждения становится ошибка, потому что целое число нельзя отбросить в тип данных xml .
Explicit conversion from data type int to xml is not allowed.
В. TRY_CONVERT выполняется успешно
В этом примере показано, что выражение должно иметь ожидаемый формат.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Этот запрос возвращает результат .2022-12-31 00:00:00.0000000