SQL TRY_CONVERT() 函数
SQL TRY_CONVERT() 函数尝试改变表达式的数据类型。如果转换失败,函数将返回 NULL 值,否则将返回转换后的值。
TRY_CONVERT() 函数与 CONVERT() 函数之间唯一的区别在于当转换失败时的处理方式。CONVERT() 函数将抛出错误,而 TRY CONVERT() 函数将返回 NULL 值。
语法
以下是 SQL TRY_CAST() 函数的语法:
参数
该函数只接受四个参数。具体如下描述:
- expression - 需要转换为数据类型的有效表达式。
-
datatype - 我们想要将表达式转换为的数据类型。
-
length - 用于定义目标数据类型的长度,该参数为可选参数,其默认值为30。
-
style - 该参数为可选整数表达式,指定TRY_CONVERT()函数如何转换给定表达式。
示例
让我们尝试使用以下查询将字符串转换为十进制数:
输出
当我们执行上述查询时,所得到的输出如下:
示例
让我们尝试使用以下查询将有效日期字符串转换为datetime2类型-
输出
执行上述查询后,输出结果显示如下 –
示例
考虑以下示例,我们将把字符串转换为十进制,由于无法将字符串1234.45转换为十进制(3, 2),所以将返回NULL。让我们使用以下查询进行验证 –
输出
在执行以上查询时,输出结果显示如下 –
示例
让我们来看一个示例,我们在这个示例中使用 style 参数来指定表达式的翻译方式,并运行以下查询 –
输出
上述查询的输出如下所示:
示例
看以下示例,我们将使用以下查询将表达式转换为varchar并指定样式:
输出
如果我们编译并运行上述查询,结果将如下产生:
示例
让我们看一个下面的示例,在这个示例中, TRY_CONVERT() 函数在显式禁止转换的情况下返回错误,具体查询如下−
输出
执行上述查询后,将会生成如下所示的输出结果:
示例
让我们考虑另一个示例,在这个示例中,我们将使用 TRY_CONVERT() 函数和case语句来运行以下查询-
输出
当查询执行时,它将生成以下输出:
示例
考虑以下示例,我们将表达式转换为一个int类型,这会使得值被截断。通过使用以下查询:
输出
当我们执行上述查询时,获得的输出如下所示: