SQL Server TRY_CONVERT 函数
SQL Server TRY_CONVERT()
函数将一种类型的表达式转换为指定的类型。如果无法转换,则返回 NULL。
TRY_CONVERT()
和 CONVERT()
函数相似,只是当转换不成功时,TRY_CONVERT()
返回 NULL,而 CONVERT()
会抛出错误。建议使用 TRY_CONVERT()
而不是 CONVERT()
函数。
TRY_CONVERT(data_type(length), expression [,style])
参数
data_type:您要将表达式转换到的目标数据类型。包括 xml、bigint 和 sql_variant。
length:指定目标数据类型的长度。这是一个可选参数。默认值为 30。
expression:您要转换数据类型的任何有效表达式。
style:这是一个可选的整数表达式,用于指定 TRY_CONVERT()
函数将如何转换给定的表达式。请参阅数据类型转换样式列表。
返回值
返回转换为目标数据类型的表达式。
示例 1
在以下示例中,TRY_CONVERT()
函数将字符类型转换为 int。
示例:TRY_CONVERT()
SELECT TRY_CONVERT (int, '1234') AS Result;

示例 2
在以下示例中,TRY_CONVERT()
函数将有效日期格式的字符串转换为 datetime 类型。
示例:TRY_CONVERT()
SELECT TRY_CONVERT (datetime, '11/23/2022') AS Result;

示例 3
以下使用 TRY_CONVERT()
将字符串值转换为 decimal。它返回 NULL,因为它无法将字符串 1234.56
转换为 decimal(3,2)
。
示例:TRY_CONVERT()
SELECT TRY_CONVERT(decimal(3,2), '1234.56') AS Result;

示例 4
使用 TRY_CONVERT()
将字符串转换为 decimal。它返回 NULL。
示例:TRY_CONVERT()
SELECT TRY_CONVERT(float, 'abcd') AS Result
