T-SQL Tutorial T-SQL Advanced Database Management T-SQL References

T-SQL TRY_CONVERT() Function



The T-SQL (Transact-SQL) TRY_CONVERT() function tries to convert an expression from one datatype to another datatype. If the conversion fails, the function will return NULL. Otherwise, it will return the converted value.

Note: CONVERT() function is similar to this function except the CONVERT() function returns an error (instead of NULL) if the conversion fails.

Syntax

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

Parameters

data_type Required. Specify the datatype to convert to. See the data types of T-SQL. Note that the Alias data types cannot be used.
length Optional. Specify the length of the resulting data type, for data types that allow a user specified length. Default is 30.
expression Required. Specify the value to convert to another datatype.
style

Optional. An integer expression to specify the format used to convert between datatypes, such as a date format or string format. For a style value of NULL, NULL is returned.

Date and Time styles

For a date or time data type expression, style can can be one of the following values:

Value (without century)Value (with century)Description
0 or 100mon dd yyyy hh:miAM/PM (Default for datetime and smalldatetime)
11011 = mm/dd/yy, 101 = mm/dd/yyyy (US standard)
21022 = yy.mm.dd, 102 = yyyy.mm.dd (ANSI standard)
31033 = dd/mm/yy, 103 = dd/mm/yyyy (British/French standard)
41044 = dd.mm.yy, 104 = dd.mm.yyyy (German standard)
51055 = dd-mm-yy, 105 = dd-mm-yyyy (Italian standard)
61066 = dd mon yy, 106 = dd mon yyyy
71077 = Mon dd, yy, 107 = Mon dd, yyyy
8 or 24108hh:mi:ss
9 or 109mon dd yyyy hh:mi:ss:mmmAM/PM (Default + milliseconds)
1011010 = mm-dd-yy, 110 = mm-dd-yyyy (USA standard)
1111111 = yy/mm/dd, 111 = yyyy/mm/dd (Japan standard)
1211212 = yymmdd, 112 = yyyymmdd (ISO standard)
13 or 113dd mon yyyy hh:mi:ss:mmm (Europe standard - 24 hour clock, Default + milliseconds)
14114hh:mi:ss:mmm (24 hour clock)
20 or 120yyyy-mm-dd hh:mi:ss (ODBC canonical - 24 hour clock)
21 or 25 or 121yyyy-mm-dd hh:mi:ss.mmm (ODBC canonical - 24 hour clock with milliseconds, Default for time, date, datetime2, and datetimeoffset)
22mm/dd/yy hh:mi:ss AM/PM (US standard)
23yyyy-mm-dd (ISO8601 standard)
126yyyy-mm-ddThh:mi:ss.mmm (ISO8601 standard)
127yyyy-MM-ddThh:mm:ss.fffZ (ISO8601 standard with time zone Z)
130dd mon yyyy hh:mi:ss:mmmAM (Hijri standard)
131dd/mm/yyyy hh:mi:ss:mmmAM (Hijri standard)

float and real styles

For a float or real data type expression, style can can be one of the following values:

ValueDescription
0(Default) A maximum of 6 digits. Use in scientific notation, when appropriate.
1Always 8 digits. Always use in scientific notation.
2Always 16 digits. Always use in scientific notation.
3Always 17 digits. Use for lossless conversion. With this style, every distinct float or real value is guaranteed to convert to a distinct character string.
Note: Applies to: T-SQL (Starting in T-SQL 2016 (13.x)) and Azure SQL Database.

money and smallmoney styles

For a money and smallmoney data type expression, style can can be one of the following values:

ValueDescription
0(Default) No comma delimiters, 2 digits to the right of decimal, Example: 1234.56
1Comma delimiters, 2 digits to the right of decimal, Example: 1,234.56
2No comma delimiters, 4 digits to the right of decimal, Example: 1234.5678

Return Value

Returns the expression converted to another data_type.

Convert to INT

The TRY_CONVERT() function can be used to convert a value to a INT type. For example - in the example below, 123.456 is converted to INT datatype.

SELECT TRY_CONVERT(INT, 123.456);
Result: 123

Convert to DECIMAL

The TRY_CONVERT() function can be used to convert a value to a DECIMAL type. For example - in the example below, '123.456' is converted to DECIMAL datatype.

SELECT TRY_CONVERT(DECIMAL(5, 2), '123.456');
Result: 123.46

Convert to CHAR

The TRY_CONVERT() function can be used to convert a value to a CHAR type. For example - in the example below, 123 is converted to CHAR datatype.

SELECT TRY_CONVERT(CHAR(4), 123);
Result: '123'

Convert to NCHAR

The TRY_CONVERT() function can be used to convert a value to a NCHAR type. For example - in the example below, 123 is converted to NCHAR datatype.

SELECT TRY_CONVERT(NCHAR(10), 123);
Result: '123'

Convert to VARCHAR

The TRY_CONVERT() function can be used to convert a value to a VARCHAR type. For example - in the example below, 123 is converted to VARCHAR datatype.

SELECT TRY_CONVERT(VARCHAR, 123);
Result: '123'

Convert to DATE

The TRY_CONVERT() function can be used to convert a value to a DATE type. For example - in the example below, '2018-08-18' is converted to DATE datatype.

SELECT TRY_CONVERT(DATE, '2018-08-18');
Result: '2018-08-31'

Convert to TIME

The TRY_CONVERT() function can be used to convert a value to a TIME type. For example - in the example below, '10:38:42' is converted to TIME datatype.

SELECT TRY_CONVERT(TIME, '10:38:42');
Result: '10:38:42'

Convert to DATETIME

The TRY_CONVERT() function can be used to convert a value to a DATETIME type. For example - in the example below, '2018-08-18 10:38:42' is converted to DATETIME datatype.

SELECT TRY_CONVERT(DATETIME, '2018-08-18 10:38:42', 101);
Result: '2018-08-18 10:38:42'

❮ T-SQL Functions