Cast t sql: Функции CAST и CONVERT (Transact-SQL) — SQL Server
Содержание
TRY_CAST (Transact-SQL) — SQL Server
Редактировать
Твиттер
Фейсбук
Электронная почта
- Статья
- 2 минуты на чтение
Применяется к: SQL Server Azure SQL База данных Azure SQL Управляемый экземпляр Azure Synapse Analytics Analytics Platform System (PDW)
Возвращает значение, приведенное к указанному типу данных, если преобразование прошло успешно; в противном случае возвращает ноль.
Соглашения о синтаксисе Transact-SQL
Синтаксис
TRY_CAST (выражение AS тип_данных [ ( длина ) ] )
Примечание
Чтобы просмотреть синтаксис Transact-SQL для SQL Server 2014 и более ранних версий, см. документацию по предыдущим версиям.
Аргументы
выражение
Приводимое значение. Любое допустимое выражение.
тип_данных
Тип данных, в который нужно преобразовать выражение .
длина
Необязательное целое число, указывающее длину целевого типа данных.
Диапазон допустимых значений определяется значением data_type .
Типы возвращаемых значений
Возвращает значение, приведенное к указанному типу данных, если преобразование прошло успешно; в противном случае возвращает ноль.
TRY_CAST принимает переданное ему значение и пытается преобразовать его в указанное тип_данных . Если приведение выполняется успешно, TRY_CAST возвращает значение как указанное data_type ; в случае ошибки возвращается null. Однако если вы запросите преобразование, которое явно не разрешено, то TRY_CAST завершится ошибкой.
TRY_CAST не является новым зарезервированным ключевым словом и доступно для всех уровней совместимости. TRY_CAST имеет ту же семантику, что и TRY_CONVERT при подключении к удаленным серверам.
Примеры
A. TRY_CAST возвращает значение null
В следующем примере показано, что TRY_CAST возвращает значение null при сбое приведения.
ВЫБОР СЛУЧАЙ, КОГДА TRY_CAST('test' AS float) IS NULL ТОГДА "Приведение не удалось" ELSE "Успех трансляции" КОНЕЦ КАК Результат; ИДТИ
Вот набор результатов.
Результат ------------ Приведение не удалось (затронуты 1 ряд)
В следующем примере показано, что выражение должно иметь ожидаемый формат.
УСТАНОВИТЬ ФОРМАТ ДАТЫ dmy; SELECT TRY_CAST('31.12.2010' AS datetime2) AS Result; ИДТИ
Вот набор результатов.
Результат ---------------------- НУЛЕВОЙ (затронуты 1 ряд)
B.
TRY_CAST завершается с ошибкой
В следующем примере показано, что TRY_CAST возвращает ошибку, когда приведение явно запрещено.
SELECT TRY_CAST(4 AS xml) AS Result; ИДТИ
Результатом этого оператора является ошибка, так как целое число не может быть преобразовано в тип данных xml.
Явное преобразование типа данных int в xml не допускается.
C. TRY_CAST завершается успешно
Этот пример демонстрирует, что выражение должно быть в ожидаемом формате.
УСТАНОВИТЬ ФОРМАТ ДАТЫ mdy; SELECT TRY_CAST('31.12.2010' AS datetime2) AS Result; ИДТИ
Вот набор результатов.
Результат ---------------------------------- 2010-12-31 00:00:00.0000000 (затронуты 1 ряд)
См. также
TRY_CONVERT (Transact-SQL)
ПРИВЕСТИ и ПРЕОБРАЗОВАТЬ (Transact-SQL)
TRY_CONVERT (Transact-SQL) — SQL Server
Редактировать
Твиттер
Фейсбук
Электронная почта
- Статья
- 2 минуты на чтение
Применяется к: SQL Server Azure SQL База данных Azure SQL Управляемый экземпляр Azure Synapse Analytics Analytics Platform System (PDW)
Возвращает значение, приведенное к указанному типу данных, если преобразование прошло успешно; в противном случае возвращает ноль.
Соглашения о синтаксисе Transact-SQL
Синтаксис
TRY_CONVERT (тип_данных [(длина)], выражение [ стиль])
Примечание
Чтобы просмотреть синтаксис Transact-SQL для SQL Server 2014 и более ранних версий, см. документацию по предыдущим версиям.
Аргументы
data_type [ (длина) ]
Тип данных, в который нужно преобразовать выражение .
выражение
Приводимое значение.
стиль
Необязательное целочисленное выражение, указывающее, как функция TRY_CONVERT должна преобразовывать выражение .
стиль принимает те же значения, что и параметр стиля функции CONVERT . Дополнительные сведения см. в разделе CAST и CONVERT (Transact-SQL).
Диапазон допустимых значений определяется значением тип_данных . Если стиль имеет значение 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).
Примеры
A. TRY_CONVERT возвращает значение null
В следующем примере показано, что TRY_CONVERT возвращает значение null при сбое приведения.
ВЫБОР СЛУЧАЙ, КОГДА TRY_CONVERT(float, 'test') IS NULL ТОГДА "Приведение не удалось" ELSE "Успех трансляции" КОНЕЦ КАК Результат; ИДТИ
Вот набор результатов.
Результат ------------ Приведение не удалось (затронуты 1 ряд)
В следующем примере показано, что выражение должно иметь ожидаемый формат.
УСТАНОВИТЬ ФОРМАТ ДАТЫ dmy; SELECT TRY_CONVERT(datetime2, '31/12/2010') AS Result; ИДТИ
Вот набор результатов.
Результат ---------------------- НУЛЕВОЙ (затронуты 1 ряд)
B. TRY_CONVERT завершается с ошибкой
В следующем примере показано, что TRY_CONVERT возвращает ошибку, когда приведение явно запрещено.