SQL Server 函数

SQL Server (Transact-SQL) TRY_CAST() 函数尝试将表达式从一种数据类型转换为另一种数据类型。如果转换失败,函数将返回NULL。否则,它将返回转换后的值。

注释:CAST() 函数与此函数类似,只是如果转换失败,CAST() 函数会返回错误(而不是 NULL)。

语法

TRY_CAST(expression AS data_type [ ( length ) ]) 

参数

expression必填。 指定要转换为另一种数据类型的值。
data_type必需。 指定要转换为的数据类型。请参阅SQL Server 的数据类型。请注意,不能使用 Alias 数据类型。
length可选。 对于允许用户指定长度的数据类型,指定结果数据类型的长度。默认值为 30。

返回值

返回转换为另一种数据类型.

转换为 INT

TRY_CAST() 函数可用于将值转换为 INT 类型。例如 - 在下面的示例中,123.456 转换为 INT 数据类型。

SELECT TRY_CAST(123.456 AS INT);
Result: 123 

转换为 DECIMAL

TRY_CAST() 函数可用于转换DECIMAL 类型的值。例如 - 在下面的示例中,"123.456"被转换为 DECIMAL 数据类型。

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

转换为 CHAR

可以使用 TRY_CAST() 函数将值转换为 CHAR 类型。例如 - 在下面的示例中,123 被转换为 CHAR 数据类型。

SELECT TRY_CAST(123 AS CHAR(4));
Result: '123' 

转换为 NCHAR

TRY_CAST() 函数可用于转换NCHAR 类型的值。例如 - 在下面的示例中,123 被转换为 NCHAR 数据类型。

SELECT TRY_CAST(123 AS NCHAR(10));
Result: '123' 

转换为 VARCHAR

TRY_CAST() 函数可用于转换VARCHAR 类型的值。例如 - 在下面的示例中,123 被转换为 VARCHAR 数据类型。

SELECT TRY_CAST(123 AS VARCHAR);
Result: '123' 

转换为 DATE

TRY_CAST() 函数可用于转换DATE 类型的值。例如 - 在下面的示例中,"2018-08-18"被转换为 DATE 数据类型。

SELECT TRY_CAST('2018-08-18' AS DATE);
Result: '2018-08-31' 

转换为 TIME

TRY_CAST()函数可用于将值转换为 TIME 类型。例如 - 在下面的示例中,"10:38:42"被转换为 TIME 数据类型。

SELECT TRY_CAST('10:38:42' AS TIME);
Result: '10:38:42' 

转换为 DATETIME

TRY_CAST()函数可用于将值转换为 DATETIME 类型。例如 - 在下面的示例中,"2018-08-18 10:38:42"被转换为 DATETIME 数据类型。

SELECT TRY_CAST('2018-08-18 10:38:42' AS DATETIME);
Result: '2018-08-18 10:38:42'