TRY_CAST (Transact-SQL)TRY_CAST (Transact-SQL)

適用対象: ○SQL Server (2012 以降) ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2012) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

キャストが成功した場合は、指定したデータ型にキャストされた値を返します。それ以外の場合は null を返します。Returns a value cast to the specified data type if the cast succeeds; otherwise, returns null.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax


TRY_CAST ( expression AS data_type [ ( length ) ] )  

引数Arguments

式 (expression)expression
キャストされる値。The value to be cast. 任意の有効な式。Any valid expression.

data_typedata_type
expression をキャストするデータ型。The data type into which to cast expression.

lengthlength
対象のデータ型の長さを指定する整数 (省略可能)。Optional integer that specifies the length of the target data type.

許容される値の範囲は、data_type の値によって決まります。The range of acceptable values is determined by the value of data_type.

戻り値の型Return Types

キャストが成功した場合は、指定したデータ型にキャストされた値を返します。それ以外の場合は null を返します。Returns a value cast to the specified data type if the cast succeeds; otherwise, returns null.

RemarksRemarks

TRY_CAST は渡された値を使用して、指定された data_type への変換を試みます。TRY_CAST takes the value passed to it and tries to convert it to the specified data_type. キャストが成功した場合、TRY_CAST は指定された data_type と同じ値を返します。エラーが発生した場合は null が返されます。If the cast succeeds, TRY_CAST returns the value as the specified data_type; if an error occurs, null is returned. ただし、明示的に許可されない変換を要求すると、TRY_CAST はエラーが発生して失敗します。However if you request a conversion that is explicitly not permitted, then TRY_CAST fails with an error.

TRY_CAST は予約された新しいキーワードではなく、すべての互換性レベルで使用可能です。TRY_CAST is not a new reserved keyword and is available in all compatibility levels. TRY_CAST がリモート サーバーに接続するときのセマンティクスは、TRY_CONVERT と同じです。TRY_CAST has the same semantics as TRY_CONVERT when connecting to remote servers.

使用例Examples

A.A. TRY_CAST が null を返すTRY_CAST returns null

キャストに失敗して TRY_CAST が null を返す場合の例を次に示します。The following example demonstrates that TRY_CAST returns null when the cast fails.

SELECT   
    CASE WHEN TRY_CAST('test' AS float) IS NULL   
    THEN 'Cast failed'  
    ELSE 'Cast succeeded'  
END AS Result;  
GO  

以下に結果セットを示します。Here is the result set.

Result  
------------  
Cast failed  

(1 row(s) affected)  

次の例は、式を求められている形式にする必要があることを示しています。The following example demonstrates that the expression must be in the expected format.

SET DATEFORMAT dmy;  
SELECT TRY_CAST('12/31/2010' AS datetime2) AS Result;  
GO  

以下に結果セットを示します。Here is the result set.

Result  
----------------------  
NULL  

(1 row(s) affected)  

B.B. TRY_CAST でエラーが発生して失敗するTRY_CAST fails with an error

キャストが明示的に許可されていないときに TRY_CAST がエラーを返す場合の例を次に示します。The following example demonstrates that TRY_CAST returns an error when the cast is explicitly not permitted.

SELECT TRY_CAST(4 AS xml) AS Result;  
GO  

このステートメントの結果はエラーです。整数を xml データ型にキャストすることはできないからです。The result of this statement is an error, because an integer cannot be cast into an xml data type.

Explicit conversion from data type int to xml is not allowed.  

C.C. TRY_CAST が成功するTRY_CAST succeeds

この例は、式を求められている形式にする必要があることを示しています。This example demonstrates that the expression must be in the expected format.

SET DATEFORMAT mdy;  
SELECT TRY_CAST('12/31/2010' AS datetime2) AS Result;  
GO  

以下に結果セットを示します。Here is the result set.

Result  
----------------------------------  
2010-12-31 00:00:00.0000000  

(1 row(s) affected)  

参照See Also

TRY_CONVERT (Transact-SQL) TRY_CONVERT (Transact-SQL)
CAST および CONVERT (Transact-SQL)CAST and CONVERT (Transact-SQL)