Cast t sql: Функции CAST и CONVERT (Transact-SQL) — SQL Server

TRY_CAST (Transact-SQL) — SQL Server

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья
  • 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

Редактировать

Твиттер

LinkedIn

Фейсбук

Электронная почта

  • Статья
  • 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 возвращает ошибку, когда приведение явно запрещено.