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 [ ( length ) ]
Тип данных, к которому следует привести expression.
выражение
Приводимое значение.
style
Необязательное целочисленное выражение, определяющее, как функция TRY_CONVERT преобразует значение аргумента expression.
style принимает те же значения, что и параметр style функции CONVERT. Дополнительные сведения см. в разделе Функции CAST и CONVERT (Transact-SQL).
Диапазон допустимых значений определяется значением data_type. Если параметр style имеет значение NULL, функция TRY_CONVERT возвращает значение NULL.
Типы возвращаемых данных
Возвращает значение, приведенное к указанному типу, если приведение проходит успешно; в противном случае возвращает NULL.
Замечания
TRY_CONVERT принимает переданное значение и пытается преобразовать его в указанный тип data_type. Если преобразование выполнено успешно, то TRY_CONVERT возвращает значение согласно указанному типу data_type; если возникла ошибка, возвращается значение NULL. Однако в случае, если будет запрошено явно запрещенное преобразование, функция TRY_CONVERT вернет ошибку.
При уровне совместимости 110 и выше TRY_CONVERT является зарезервированным ключевым словом.
Эта функция может быть удалена на серверы с версией 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
(1 row(s) affected)
В следующем примере показано, что выражение должно иметь ожидаемый формат.
SET DATEFORMAT dmy;
SELECT TRY_CONVERT(datetime2, '12/31/2010') AS Result;
GO
Результирующий набор:
Result
----------------------
NULL
(1 row(s) affected)
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/2010') AS Result;
GO
Результирующий набор:
Result
----------------------------------
2010-12-31 00:00:00.0000000
(1 row(s) affected)
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по