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'