TRY_CONVERT (Transact-SQL)
Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric
Возвращает значение, приведение к указанному типу данных, если приведение выполнено успешно; в противном случае возвращается NULL
.
Соглашения о синтаксисе Transact-SQL
Синтаксис
TRY_CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
Примечание.
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Аргументы
data_type
Тип данных, к которому следует привести expression.
length
Указываемое дополнительно целое число, обозначающее длину целевого типа данных, который допускает указание длины пользователем. Максимальное значение длины составляет 8 000 байт.
выражение
Значение для приведения.
style
Необязательное целочисленное выражение, указывающее способ TRY_CONVERT
перевода выражения функции.
стиль принимает те же значения, что и параметр CONVERT
стиля функции. См. описание CAST и CONVERT.
Значение data_type определяет диапазон допустимых значений. Если стиль равенNULL
, возвращаетсяNULL
TRY_CONVERT
.
Типы возвращаемых данных
Возвращает значение, приведение к указанному типу данных, если приведение выполнено успешно; в противном случае возвращается 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
Результирующий набор:
Result
------------
Cast failed
В следующем примере показано, что выражение должно иметь ожидаемый формат.
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Результирующий набор:
Result
----------------------
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.
C. TRY_CONVERT выполняется успешно
В этом примере показано, что выражение должно иметь ожидаемый формат.
SET DATEFORMAT mdy;
SELECT TRY_CONVERT(DATETIME2, '12/31/2022') AS Result;
GO
Результирующий набор:
Result
----------------------------------
2022-12-31 00:00:00.0000000
Связанный контент
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по