MariaDB CAST() 函数的基础用法与实例

MariaDB CAST() 函数是一个类型转换函数,它可以将一个表达式的数据类型转换为另一个指定的数据类型。

发布于

MariaDB CAST() 函数是一个类型转换函数,它可以将一个表达式的数据类型转换为另一个指定的数据类型。CAST() 函数可以用于处理不同数据类型之间的运算,比如字符串和数字,日期和时间等。CAST() 函数也可以用于格式化输出,比如将数字转换为货币格式,将日期转换为特定的格式等。

语法

CAST() 函数的语法如下:

CAST(expression AS type)

其中,expression 是要转换的表达式,可以是任何有效的 MariaDB 表达式。type 是要转换的目标数据类型,可以是以下之一:

  • BINARY[(N)]:将表达式转换为二进制字符串,如果指定了 N,则截断或填充为 N 个字节。
  • CHAR[(N)]:将表达式转换为字符字符串,如果指定了 N,则截断或填充为 N 个字符。
  • DATE:将表达式转换为日期值,格式为 YYYY-MM-DD
  • DATETIME:将表达式转换为日期时间值,格式为 YYYY-MM-DD HH:MM:SS
  • DECIMAL[(M[,D])]:将表达式转换为十进制数,如果指定了 M,则表示总位数,如果指定了 D,则表示小数位数。
  • DOUBLE:将表达式转换为双精度浮点数。
  • INTEGER:将表达式转换为整数。
  • SIGNED:将表达式转换为有符号整数。
  • TIME:将表达式转换为时间值,格式为 HH:MM:SS
  • UNSIGNED:将表达式转换为无符号整数。

实例

下面是一些使用 CAST() 函数的实例,包括相关的代码,说明,以及代码的运行结果。

将字符串转换为数字

在这个实例中,我们使用 CAST() 函数将字符串 '123''3.14' 转换为数字,然后进行加法运算。

SELECT CAST('123' AS INTEGER) + CAST('3.14' AS DOUBLE) AS result;

输出结果如下:

+--------+
| result |
+--------+
| 126.14 |
+--------+

将数字转换为字符串

在这个实例中,我们使用 CAST() 函数将数字 1233.14 转换为字符串,然后进行字符串连接运算。

SELECT CONCAT(CAST(123 AS CHAR), CAST(3.14 AS CHAR)) AS result;

输出结果如下:

+---------+
| result  |
+---------+
| 1233.14 |
+---------+

说明:如果不使用 CAST() 函数,直接将数字连接,会得到一个数字相加的结果,而不是字符串连接的结果。比如:

SELECT 123 + 3.14 AS result;

输出结果如下:

+--------+
| result |
+--------+
| 126.14 |
+--------+

将日期转换为字符串

在这个实例中,我们使用 CAST() 函数将日期值 2024-02-07 转换为字符串,然后使用 SUBSTRING() 函数提取其中的年份、月份和日期。

SELECT SUBSTRING(CAST('2024-02-07' AS CHAR), 1, 4) AS year,
       SUBSTRING(CAST('2024-02-07' AS CHAR), 6, 2) AS month,
       SUBSTRING(CAST('2024-02-07' AS CHAR), 9, 2) AS day;

输出结果如下:

+------+-------+------+
| year | month | day  |
+------+-------+------+
| 2024 | 02    | 07   |
+------+-------+------+

说明:如果不使用 CAST() 函数,直接将日期值作为字符串处理,会得到一个错误的结果,因为日期值会被隐式转换为数字。

将数字转换为货币格式

在这个实例中,我们使用 CAST() 函数将数字 123456.78 转换为货币格式,即保留两位小数,并在前面加上人民币符号 ¥

SELECT CONCAT('¥', CAST(123456.781 AS DECIMAL(10,2))) AS result;

输出结果如下:

+------------+
| result     |
+------------+
| ¥123456.78 |
+------------+

说明:如果不使用 CAST() 函数,直接将数字作为字符串连接,会得到一个不符合货币格式的结果,因为数字会被隐式转换为字符串,而不会保留两位小数。比如:

SELECT CONCAT('¥', 123456.789) AS result;

输出结果如下:

+-------------+
| result      |
+-------------+
| ¥123456.789 |
+-------------+

相关函数

除了 CAST() 函数外,MariaDB 还提供了一些其他的类型转换函数,如下:

  • BINARY():将表达式转换为二进制字符串,等同于 CAST(expression AS BINARY)
  • CHAR():将表达式转换为字符字符串,等同于 CAST(expression AS CHAR)
  • CONVERT():将表达式转换为指定的数据类型,等同于 CAST(expression AS type)
  • DATE():将表达式转换为日期值,等同于 CAST(expression AS DATE)

结论

本文介绍了 MariaDB CAST() 函数的基础用法与实例,以及与之相关的一些其他的类型转换函数。CAST() 函数可以将一个表达式的数据类型转换为另一个指定的数据类型,从而实现不同数据类型之间的运算,格式化输出,或者其他的目的。CAST() 函数的语法是 CAST(expression AS type),其中 type 可以是多种数据类型之一。本文还给出了一些使用 CAST() 函数的实例,以及使用其他类型转换函数的实例,以便于读者更好地理解和应用这些函数。