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

在MySQL中,CAST() 函数用于将一个数据类型转换为另一个数据类型。这个功能在查询过程中非常有用,尤其是在需要对不同类型的数据进行比较、计算或格式化输出时。
CAST(expression AS type)
其中:
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. 转换为日期时间类型
将字符串转换为 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基本上就这些。CAST 在日常查询中很实用,关键是选择合适的目标类型,并注意源数据是否能合法转换,否则会返回 NULL 或报错。不复杂但容易忽略细节。
以上就是如何在mysql中使用CAST转换数据类型的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号