SQL Server CAST() 函数:转换数据类型
SQL Server CAST()
函数将一个数据类型的表达式转换为另一个数据类型。
建议使用 TRY_CAST() 函数代替 CAST()
函数,以最大程度地减少错误。
CAST(expression AS final_data_type(length))
参数
expression: 任何需要转换的有效表达式。
final_data_type: 要将给定表达式转换为的目标数据类型。这是一个可选参数。
length: 一个可选整数,指定目标数据类型的长度。
返回值
返回转换为目标数据类型的给定表达式。当将非数字的 char、nchar、varchar 或 nvarchar 值转换为 decimal、float、int 或 numeric 时,它会返回错误。
当将空字符串转换为 int 或 numeric 数据类型时,它会返回错误。
当转换具有不同小数位的数据类型时,CAST()
函数会截断结果值或将其四舍五入到更高的或更低的值。
从 | 到 | 行为 |
---|---|---|
numeric | Numeric | 四舍五入 |
numeric | Int | 截断 |
numeric | Money | 四舍五入 |
money | Int | 四舍五入 |
money | numeric | 四舍五入 |
float | int | 截断 |
float | numeric | 四舍五入 |
float | datetime | 四舍五入 |
datetime | int | 四舍五入 |
示例 1
在以下示例中,一个 decimal 被转换为 integer 数据类型。
示例:CAST()
SELECT CAST(22.24 AS int) AS Result;

示例 2
当转换具有不同小数位的数据类型时,CAST()
函数会截断结果值或将其四舍五入到更高的或更低的值。
示例:CAST()
SELECT CAST(22.24 AS dec(3,1)) AS Result1,
CAST(22.24 AS dec(3,0)) AS Result2;

示例 3
在以下示例中,CAST()
函数用于将字符串表达式转换为 datetime 值。
示例:CAST()
SELECT CAST('11/23/2022' AS datetime) as result;

示例 4
在以下示例中,CAST()
用于将非字符值连接到字符串表达式。它与整数类型的 Salary
列一起使用,并将其转换为字符串值。
示例:CAST()
SELECT 'The Salary of ' + FirstName + ' is $' + CAST(Salary AS varchar(10)) FROM Employee;

示例 5
在以下示例中,CAST()
函数在将字符串转换为 int 时会产生错误。
示例:CAST()
SELECT CAST( 'abcd' AS int) AS Result;

示例 6
在以下示例中,CAST()
函数将字符串转换为长度为 5 的字符。它将字符串截断为 5 个字符。
示例:CAST()
SELECT CAST('Hello World' AS char(5)) AS Result;

示例 7
在这里,CAST()
与 HireDate
列一起使用,将日期转换为 datetime。
示例:CAST()
SELECT HireDate, CAST(Hiredate AS datetime) AS Result FROM Employee;
