SQL Server TRY_CONVERT Function

SQL Server TRY_CONVERT() function converts an expression of one type to the specified type. It returns NULL if cannot convert it.

The TRY_CONVERT() and the CONVERT() functions are similar except when the conversion is unsuccessful TRY_CONVERT() returns a NULL and CONVERT() throws an error. It is recommended to use TRY_CONVERT() over the CONVERT() function.

TRY_CONVERT(data_type(length), expression [,style])

Parameters

data_type: The target data type to which you want to convert the expression. It includes xml, bigint, and sql_variant.

length: Specifies the length of the target data type. This is an optional parameter. The default value is 30.

expression: Any valid expression for which you want to convert the data type.

style: This is an optional integer expression that specifies how the TRY_CONVERT() function will translate the given expression. See the list of styles for data type convertion.

Return Value

Returns the expression converted to the target data type.

Example 1:

In the following example, the TRY_CONVERT() function converts a character type to int.

Example: TRY_CONVERT()
SELECT TRY_CONVERT (int, '1234') AS Result;

Example 2:

In the following example, the TRY_CONVERT() function converts a string of valid date format to datetime type.

Example: TRY_CONVERT()
SELECT TRY_CONVERT (datetime, '11/23/2022') AS Result;

Example 3:

The following uses the TRY_CONVERT() to convert a string value to decimal. It returns a NULL because it cannot convert string 1234.56 to decimal(3,2).

Example: TRY_CONVERT()
SELECT TRY_CONVERT(decimal(3,2), '1234.56') AS Result;

Example 4:

Use TRY_CONVERT() to convert a string to decimal. It returns a NULL.

Example: TRY_CONVERT()
SELECT TRY_CONVERT(float, 'abcd') AS Result