摘要:在本教程中,我们将向您展示如何使用MySQL CAST函数将任意类型的值转换为指定类型的值。
MySQL CAST函数简介
MySQL CAST()
函数的语法如下:
CAST(expression AS TYPE);
Code language: SQL (Structured Query Language) (sql)
CAST()
函数将任何类型的值转换为具有指定类型的值。目标类型可以是以下任何一种类型: BINARY
、 CHAR
、 DATE
、 DATETIME
、 TIME
、 DECIMAL
、 SIGNED
、 UNSIGNED
。
CAST()
函数通常用于返回指定类型的值,以便在WHERE 、 JOIN和HAVING子句中进行比较。
让我们看一下使用CAST()
函数的一些示例。
MySQL CAST 函数示例
在下面的示例中,MySQL 在进行计算之前将字符串隐式转换为整数:
SELECT (1 + '1')/2;
Code language: SQL (Structured Query Language) (sql)
要将字符串显式转换为整数,请使用CAST()
函数,如下所示:
SELECT (1 + CAST('1' AS UNSIGNED))/2;
Code language: SQL (Structured Query Language) (sql)
以下语句显式地将整数转换为字符串并将该字符串与另一个字符串连接:
SELECT CONCAT('MySQL CAST example #',CAST(2 AS CHAR));
Code language: SQL (Structured Query Language) (sql)
让我们看一下示例数据库中的orders
表。
请参阅以下查询:
SELECT orderNumber,
requiredDate
FROM orders
WHERE requiredDate BETWEEN '2003-01-01' AND '2003-01-31';
Code language: SQL (Structured Query Language) (sql)
该查询选择所需日期在 2003 年 1 月的订单。 requireDate
列的数据类型是DATE
,因此,MySQL 必须将文字字符串: '2003-01-01'
和'2003-01-31'
转换为TIMESTAMP值在评估WHERE
条件之前。
但是,为了安全起见,您可以使用CAST()
函数将字符串显式转换为TIMESTAMP
值,如下所示:
SELECT orderNumber,
requiredDate
FROM orders
WHERE requiredDate BETWEEN CAST('2003-01-01' AS DATETIME)
AND CAST('2003-01-31' AS DATETIME);
Code language: SQL (Structured Query Language) (sql)
以下语句将DOUBLE
值转换为CHAR
值,并将结果用作CONCAT函数的参数:
SELECT productName,
CONCAT('Prices(',
CAST(buyprice AS CHAR),
',',
CAST(msrp AS CHAR),
')') prices
FROM products;
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用 MySQL CAST()
函数将任意类型的值转换为指定类型的值。
本教程有帮助吗?