mysql中CAST和CONVERT函数如何使用_mysql CAST CONVERT操作

来源:这里教程网 时间:2026-02-28 20:26:05 作者:

在MySQL中,CASTCONVERT 函数用于数据类型的转换。它们可以帮助你在查询过程中将一种数据类型转为另一种,比如把字符串转为数字、日期转为字符串等。虽然功能相似,但语法略有不同。

CAST函数的使用方法

CAST(expr AS type) 是标准SQL语法,兼容性较好。

expr:要转换的值或表达式 type:目标数据类型,如 CHAR、SIGNED、UNSIGNED、DECIMAL、DATE、DATETIME、TIME 等

常见用法示例:

将字符串转为整数:

SELECT CAST('123' AS SIGNED);

将数字转为字符串:

SELECT CAST(456 AS CHAR);

将时间戳字符串转为 DATETIME 类型:

SELECT CAST('2023-10-01 12:30:00' AS DATETIME);

CONVERT函数的使用方法

CONVERT 支持两种形式:

CONVERT(expr, type) —— 更像MySQL风格 CONVERT(expr USING charset) —— 用于字符集转换

前一种与 CAST 功能基本一致:

SELECT CONVERT('789', SIGNED);
SELECT CONVERT(123.45, CHAR);

也可以用于日期转换:

SELECT CONVERT('2023-12-25', DATE);

CONVERT 还能处理字符集转换:

SELECT CONVERT('文本' USING utf8mb4);

常用数据类型说明

CHAR:转换为字符串 SIGNED:转换为带符号整数(INT) UNSIGNED:转换为无符号整数 DECIMAL(M,D):转换为定点数,如 DECIMAL(10,2) DATE:仅日期部分 DATETIME:日期和时间 TIME:时间间隔或时间点

实际应用场景

当你需要对字符串存储的数字进行排序或计算时,类型转换就很有用。

例如,表中 price 字段是 VARCHAR 类型,但想按数值排序:

SELECT * FROM products ORDER BY CAST(price AS DECIMAL(10,2));

或者比较两个不同类型字段:

SELECT * FROM logs WHERE CAST(log_time AS DATE) = '2023-09-01';

基本上就这些。CAST 更符合标准SQL,适合跨数据库兼容;CONVERT 在MySQL中更灵活,尤其支持字符集操作。两者在大多数场景可以互换使用。关键是根据字段类型选择正确的目标类型,避免转换失败。

相关推荐

热文推荐