如何在mysql中使用CAST转换数据类型

23次阅读

CAST()函数用于 数据类型 转换,语法为 CAST(expression AS type);可将数值转 字符串 char)、字符串转整数(SIGNED/UNSIGNED)、转浮点数(DECIMAL)或日期时间(date/DATETIME);常用于数据比较、聚合计算和union 查询中的类型统一,需确保源数据可合法转换以避免错误。

如何在 mysql 中使用 CAST 转换数据类型

mysql 中,CAST() 函数用于将一个数据 类型转换 为另一个数据类型。这个功能在查询过程中非常有用,尤其是在需要对不同类型的数据进行比较、计算或 格式化输出 时。

基本语法

CAST(expression AS type)

其中:

  • expression:要转换的值或字段
  • type:目标数据类型,如 CHAR、SIGNED、UNSIGNED、DECIMAL、DATE、DATETIME 等

常见用法示例

1. 转换为字符串(CHAR)

当你想把数值转成字符串以便拼接或其他文本操作时:

select CAST(123 AS CHAR); — 结果: ‘123’SELECT CONCAT(‘ID: ‘, CAST(id AS CHAR)) FROM users;

2. 转换为整数(SIGNED 或 UNSIGNED)

将字符串或小数转为 整数类型

SELECT CAST(‘123’ AS SIGNED); — 结果: 123SELECT CAST(12.8 AS SIGNED); — 结果: 12

使用 UNSIGNED 可获得无符号整数(非负):

SELECT CAST(‘456’ AS UNSIGNED);

3. 转换为浮点数或定点数(DECIMAL)

处理精度要求较高的数值转换:

SELECT CAST(‘123.45’ AS DECIMAL(10,2)); — 结果: 123.45SELECT CAST(price_field AS DECIMAL(8,2)) FROM products;

4. 转换为日期时间类型

如何在 mysql 中使用 CAST 转换数据类型

如知 AI 笔记

如知笔记——支持 markdown 的在线笔记,支持 ai 智能写作、AI 搜索,支持 DeepseekR1 满血大模型

如何在 mysql 中使用 CAST 转换数据类型 27

查看详情 如何在 mysql 中使用 CAST 转换数据类型

将字符串转换为 DATE 或 DATETIME 类型:

SELECT CAST(‘2025-04-05′ AS DATE); — 结果: ‘2025-04-05’SELECT CAST(‘2025-04-05 14:30:00’ AS DATETIME);

也可以将时间戳或数字转为日期(需注意格式):

SELECT CAST(‘20250405’ AS DATE); — 需符合可解析格式

实际应用场景

数据比较

数据库 中某个字段是 字符串类型 但存储的是数字,而你想按数值排序时:

SELECT * FROM table_name ORDER BY CAST(num_str_column AS SIGNED);

聚合计算

如果价格被错误地存为文本,可用 CAST 转换后求和:

SELECT SUM(CAST(price_text AS DECIMAL(10,2))) FROM sales;

联合查询(UNION)中的类型统一

确保多个 SELECT 的列类型一致:

SELECT CAST(id AS CHAR) FROM users
UNION
SELECT CAST(order_id AS CHAR) FROM orders;

基本上就这些。CAST 在日常查询中很实用,关键是选择合适的目标类型,并注意源数据是否能合法转换,否则会返回 NULL 或报错。不复杂但容易忽略细节。

站长
版权声明:本站原创文章,由 站长 2025-11-11发表,共计1354字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources