SQL CAST() 函数
SQL CAST() 函数的主要目的是将一个表达式从一种数据类型转换为另一种数据类型。如果 SQL Server CAST 函数无法将一个声明转换为所需的数据类型,则该函数会产生错误。使用 CAST 函数,我们可以将数值数据转换为字符或字符串数据。
在转换带有不同小数位数的数据类型时,CAST() 函数会将结果截断或四舍五入至更高或更低的值。
语法
以下是 SQL CAST() 函数的语法:
CAST(expression AS datatype(length))
参数
此函数只接受三个参数。具体如下所述:
- expression − 要转换的有效表达式。
-
datatype − 要将表达式转换为的数据类型。
-
length − 用于定义目标数据类型的长度,它是一个可选的整数类型参数。
示例
通过以下查询将值转换为int数据类型。
SELECT DAY('2023/02/16') AS DayOfMonth;
输出
当我们执行上述查询时,输出结果如下所示 –
+--------------------------+
| intdatatype |
+--------------------------+
| 20 |
+--------------------------+
示例
让我们通过使用以下查询将值转换为varchar数据类型-
SELECT CAST(20.23 AS varchar) AS varchardatatype;
输出
执行上述查询后,输出如下所示 –
+--------------------------+
| varchardatatype |
+--------------------------+
| 20.23 |
+--------------------------+
示例
在下面的示例中,我们将使用以下查询将值转换为日期时间数据类型:
SELECT CAST('2023-02-22' AS datetime) AS datetimedatatype;
输出
以上查询的输出如下所示:
+--------------------------+
| datetimedatatype |
+--------------------------+
| 2023-02-22 00:00:00.000 |
+--------------------------+
示例
看下面的示例,我们将使用以下查询将数据类型为Bit的单个布尔值进行转换-
SELECT CAST('0' AS BIT) As BitFalse,
CAST('1' AS BIT) As BitTrue;
输出
如果我们编译和运行上述查询,结果如下所示-
+-------------------+----------------+
| BitFalse | BitTrue |
+-------------------+----------------+
| 0 | 1 |
+-------------------+----------------+
示例
考虑以下示例,我们在以下查询中使用CAST()函数将字符串的字符转换为长度为character()的字符。
SELECT CAST('TUTORIALSPOINT' AS char(9)) AS Result;
输出
执行上述查询后,会生成如下所示的输出结果:
+------------------------------------+
| Result|
+------------------------------------+
| TUTORIALS |
+------------------------------------+
示例
让我们考虑另一个示例,我们将转换NULL值并通过运行以下查询来检查结果 –
SELECT CAST(NULL AS DATE) AS Result;
输出
当执行查询时,将生成如下所示的输出 −
+------------------------------------+
| Result|
+------------------------------------+
| NULL|
+------------------------------------+
示例
让我们使用CREATE语句在SQL数据库中创建一个名为Studentmarks的表,如下所示的查询语句−
CREATE TABLE Studentmarks(
ID INT,
NAME VARCHAR(220),
SCORE FLOAT);
现在,让我们使用INSERT语句将一些记录插入到Studentmarks表中,如下所示的查询:
INSERT INTO Studentmarks VALUES (1, 'Shikhar','80.45');
INSERT INTO Studentmarks VALUES (2, 'Suresh','56.47');
INSERT INTO Studentmarks VALUES (3, 'Rana','23.89');
INSERT INTO Studentmarks VALUES (4, 'Ram','66.77');
让我们使用以下查询来验证表格Studentmarks是否已创建:
SELECT * FROM Studentmarks;
数据表在数据库中创建并显示如下所示:
+------+---------+-------+
| ID | NAME | SCORE |
+------+---------+-------+
| 1 | Shikhar | 80.45 |
| 2 | Suresh | 56.47 |
| 3 | Rana | 23.89 |
| 4 | Ram | 66.77 |
+------+---------+-------+
现在我们将使用CAST()函数将分数列的浮点型转换为整数型,使用以下查询:
SELECT NAME,CAST(SCORE AS Integer)Int_Score FROM Studentmarks;
输出
执行上述查询时,我们得到以下输出结果:
+------------+---------------+
| NAME | int_Score |
+------------+---------------+
| Shikhar | 80|
| Suresh | 56|
| Rana | 23|
| Ram | 66|
+------------+---------------+