SQL Server 的 CAST 函数将一个表达式从一种数据类型转换为另一种数据类型。如果无法将表达式转换为所需数据类型,则此函数将返回错误。CAST 函数的语法是
CAST(Expression AS Data_Type [(Length)]) SELECT CAST(123 AS VARCHAR(50)) AS [result_name] FROM [Source]
- Expression:您要转换为所需数据类型的有效表达式。
- Data_Type:指定要将给定表达式转换为的数据类型
- Length:这是一个整数类型的可选参数。用于定义目标数据类型的长度。默认值为 30。
SQL CAST 函数示例
此函数将任何有效表达式转换为所需类型。以下查询将字符串转换为整数和十进制数。
首先,我们声明了一个 VARCHAR 变量。接下来,我们为其分配了字符串数据 ‘12121’。然后,我们将字符串值转换为整数。我们还使用 SQL Server 中的 ALIAS 列为新名称 ‘Result’ 赋值。
在下一行中,我们直接将 SQL CAST 函数应用于十进制值 123.456,并将其转换为整数(从高到低)。在这里,它将截断小数部分,返回 123。我建议您查阅 数据类型 以了解数据类型及其限制。
倒数第二个语句将字符串值更改为 DateTime 和 datetime2 数据类型。
最后,我们使用它将日期时间更改为 varchar。
DECLARE @str AS VARCHAR(50)
SET @str = '12121'
SELECT CAST(@str AS INT) AS Result;
-- Direct Inputs
SELECT CAST('1234' AS DECIMAL(10, 2)) AS Result;
SELECT CAST(123.456 AS INT) AS Result;
SELECT CAST('07/03/2017' AS DATETIME) AS Value;
SELECT CAST('07/03/2017' AS DATETIME2) AS Value;
SELECT CAST(GETDATE() AS VARCHAR(50)) AS Value;

CAST 示例 2
在此示例中,我们使用 SQL Server Cast 函数处理 NULL 值作为整数。
DECLARE @str AS VARCHAR(50) SET @str = NULL SELECT CAST(@str AS INT) AS Result; SELECT CAST(NULL AS INT) AS Result;

让我们看看如果我们尝试将字符串 ‘Tutorial Gateway’ 转换为日期时间会发生什么。这是不可能的,因此它会返回一个错误作为输出。
SELECT CAST('Tutorial Gateway' AS INT) AS Result;
执行上述查询并查看错误消息。
Msg 245, Level 16, State 1, Line 2
Conversion failed when converting the Varchar value 'Tutorial Gateway' to data type int.
在此示例中,我们将把 CAST 函数应用于我们的 Employee 表。

代码
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,CAST([YearlyIncome] AS DECIMAL(10, 3)) AS [Income]
,CAST([Sales] AS INT) AS [Amount]
,CAST([HireDate] AS DATETIME2) AS [Date]
FROM [Employee]

评论已关闭。