MySQL CAST 函数与 CONVERT 函数

 Ptw-cwl


前面我们介绍的两个函数用于字符串日期类型之间进行相互转换,有时我们需要数据之间的转换不仅仅局限在字符串和日期之前。接下来笔者给大家介绍的 cast() 函数和 convert() 函数可实现数据在不同类型之间进行转换。

cast() 函数和 convert() 函数对比:

  • 两者都是进行数据类型转换,作用基本等同。

  • 两者的语法不同。

cast()函数的语法如下:

 cast(value as type)

其中,value 表示待转数据,as 固定语法格式,type 表示转换后的数据类型

convert() 函数的语法如下:

 convert(value,type)

其中,value 表示待转数据,type 表示转换后的数据类型

无论是 cast() 函数还是 convert() 函数,他们的转换也有一定的局限性,那就是它们仅支持以下数据类型的转换:

  • binary:二进制类型;

  • char:字符类型;

  • date:日期类型;

  • time:时间类型;

  • datetime:日期时间类型;

  • decimal:浮点型;

  • signed:整型;

  • unsigned:无符号整型。

示例:

数字和小数点组成的字符串转换为整型

select cast('3.12' as signed);

输出结果:

 +------------------------+
 | cast('3.12' as signed) |
 +------------------------+
 |                      3 |
 +------------------------+
 1 row in set, 1 warning (0.00 sec)

使用convert()函数则是:convert('3.12',signed),得到的结果相同。

非数值字符串转换为整型

 select cast('30a1.12' as signed);

输出结果:

 +---------------------------+
 | cast('30a1.12' as signed) |
 +---------------------------+
 |                        30 |
 +---------------------------+
 1 row in set, 1 warning (0.00 sec)

在转换为整型的时候,如果遇到无法识别的字符则停止转换,只返回能正常识别的部分。

如果一开始就无法识别则返回 0。

把整型转换为二进制

 select cast(123 as binary);

输出结果:

 +---------------------+
 | cast(123 as binary) |
 +---------------------+
 | 123                 |
 +---------------------+
 1 row in set (0.00 sec)

数字和小数点组成的字符串转换为浮点型

 select cast(12.34 as decimal(3,1));

输出结果:

 +-----------------------------+
 | cast(12.34 as decimal(3,1)) |
 +-----------------------------+
 |                        12.3 |
 +-----------------------------+
 1 row in set (0.00 sec)

注意:decimal(m,n) ,其中 m>n,表示总共 m 位数据,其中小数 n 位,整数 m-n 位。

其他类型之间的转换,读者朋友们可以在自己的 MySQL 数据库中去尝试,就不一一举例了。

Ptw-cwl


  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ptw-cwl

谢谢老板的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值