MySQL CAST函数
MySQL的CAST()函数用于将表达式中的值从一种数据类型转换为另一种指定的数据类型。它主要与WHERE、HAVING和JOIN子句一起使用。该函数与MySQL的CONVERT()函数类似。 MySQL 。
该函数适用于以下数据类型:
数据类型 | 描述 |
---|---|
DATE | 它将值转换为“YYYY-MM-DD”格式的DATE数据类型。它支持在’1000-01-01’到’9999-12-31’范围内的日期。 |
DATETIME | 它将值转换为“YYYY-MM-DD HH:MM:SS”格式的DATETIME数据类型。它支持在’1000-01-01 00:00:00’到’9999-12-31 23:59:59’范围内的日期时间。 |
TIME | 它将值转换为“HH:MM:SS”格式的TIME数据类型。它支持在’-838:59:59’到’838:59:59’范围内的时间。 |
CHAR | 它将值转换为包含固定长度字符串的CHAR数据类型。 |
DECIMAL | 它将值转换为包含十进制字符串的DECIMAL数据类型。 |
SIGNED | 它将值转换为包含有符号64位整数的SIGNED数据类型。 |
UNSIGNED | 它将值转换为包含无符号64位整数的UNSIGNED数据类型。 |
BINARY | 它将值转换为包含二进制字符串的BINARY数据类型。 |
语法
以下是CAST()函数在MySQL中的语法: CAST() :
CAST(expression AS datatype);
参数解释
这个语法接受两个参数,将在下面进行讨论:
参数 | 要求 | 描述 |
---|---|---|
表达式 | 必需 | 它是一个将被转换为另一种特定数据类型的值。 |
数据类型 | 必需 | 它是一个表达式值需要被转换的值或数据类型。 |
返回值
转换后,它将返回我们想要转换的数据类型的值。
MySQL版本支持
CAST函数可以支持以下 MySQL版本 :
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
让我们通过以下示例来了解MySQL CAST函数。我们可以直接在SELECT语句中使用CAST函数。
示例1
此语句将该值转换为DATE数据类型。
SELECT CAST("2018-11-30" AS DATE);
输出
例子 2
这个语句将这个值转换为有符号数据类型。
SELECT CAST(3-6 AS SIGNED);
输出
示例 3
该语句将值转换为无符号数据类型。
SELECT CAST(3-6 AS UNSIGNED);
输出结果
示例4
有时需要将字符串显式转换为整数,使用以下语句将值转换为INTEGER数据类型。
SELECT (3 + CAST('3' AS SIGNED))/2;
输出
示例5
以下语句首先将一个整数值转换为字符串数据类型,然后与另一个指定的字符串进行拼接。
SELECT CONCAT('CAST Function Example ## ',CAST(5 AS CHAR));
输出
示例 6
在这个示例中,我们将看到如何使用CAST函数与表一起工作。让我们首先创建一个包含以下数据的表 ” Orders “:
在上表中,我们可以看到Order_Date的数据类型是DATE。现在,如果我们想要在选择的时间范围内获取产品名称,请执行以下语句。在评估WHERE条件之前,这里的文字字符串会被转换为时间戳值。
SELECT Order_ID, Product_Name FROM Orders
WHERE Order_Date
BETWEEN CAST('2020-02-01' AS DATETIME) AND CAST('2020-02-28' AS DATETIME);
这个语句将会产生以下输出: