mysql如何使用cast和convert

P粉602998670
发布: 2025-10-04 08:29:02
原创
571人浏览过
CAST()和CONVERT()用于MySQL数据类型转换,CAST(expression AS type)符合SQL标准,CONVERT(expression, type)功能类似但语法不同,两者可互换使用但需注意类型兼容性。

mysql如何使用cast和convert

在MySQL中,CAST()CONVERT() 都用于数据类型的转换。它们功能相似,但在语法和使用方式上略有不同。下面详细介绍这两个函数的用法和常见场景。

1. 使用 CAST() 进行类型转换

CAST() 函数的语法如下:

CAST(expression AS type)

它将 expression 转换为指定的 type。支持的主要类型包括:

  • CHAR
  • SIGNED [INTEGER](转为有符号整数)
  • UNSIGNED [INTEGER](转为无符号整数)
  • DECIMAL[(M[,D])]
  • DATE
  • DATETIME
  • TIME
  • BINARY

示例:

如知AI笔记
如知AI笔记

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

如知AI笔记 27
查看详情 如知AI笔记
SELECT CAST('123' AS SIGNED); -- 结果:123(整数)
SELECT CAST(123.45 AS CHAR); -- 结果:'123.45'
SELECT CAST('2024-01-01' AS DATE); -- 结果:2024-01-01(日期类型)

2. 使用 CONVERT() 进行类型转换

CONVERT() 有两种用法:

  • 类型转换:CONVERT(expression, type)
  • 字符集转换:CONVERT(expression USING charset)

我们主要关注第一种——类型转换。其语法为:

CONVERT(expression, type)

示例:

SELECT CONVERT('456', SIGNED); -- 结果:456
SELECT CONVERT(NOW(), CHAR); -- 将当前时间转为字符串
SELECT CONVERT('100.5', DECIMAL(10,2)); -- 结果:100.50

3. 常见应用场景

实际开发中,类型转换常用于以下情况:

  • 将字符串字段中的数字进行数学运算时,需转为数值类型
  • 格式化日期或时间显示
  • 比较不同类型的字段(如字符串与整数)
  • 聚合函数中确保数据类型一致

举例:字符串数字求和

SELECT SUM(CAST(price_str AS DECIMAL(10,2))) FROM products;

如果 price_str 是存储数字的字符串字段,必须转换后才能正确求和。

注意点:

  • 转换失败时,MySQL 会返回 0 或默认值(如无效日期转为 '0000-00-00')
  • 建议在转换前确保数据格式合法,避免隐式转换错误
  • CHAR 和 BINARY 的转换会影响排序和比较行为

基本上就这些。CAST 和 CONVERT 可根据习惯选择,CAST 更符合 SQL 标准,CONVERT 功能稍多一点。关键是要清楚目标类型,并验证转换结果是否符合预期。

以上就是mysql如何使用cast和convert的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号