MySQL CAST与CONVERT 函数的用法
MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:
1 2 | CAST (value as type); CONVERT (value, type); |
就是CAST(xxx AS 类型), CONVERT(xxx,类型)。
可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
- 二进制,同带binary前缀的效果 : BINARY
- 字符型,可带参数 : CHAR()
- 日期 : DATE
- 时间: TIME
- 日期时间型 : DATETIME
- 浮点数 : DECIMAL
- 整数 : SIGNED
- 无符号整数 : UNSIGNED
下面举几个例子:
例一
1 2 3 4 5 6 7 | mysql> SELECT CONVERT ( '23' ,SIGNED); + ----------------------+ | CONVERT ( '23' ,SIGNED) | + ----------------------+ | 23 | + ----------------------+ 1 row in set |
例二
1 2 3 4 5 6 7 | mysql> SELECT CAST ( '125e342.83' AS signed); + ------------------------------+ | CAST ( '125e342.83' AS signed) | + ------------------------------+ | 125 | + ------------------------------+ 1 row in set |
例三
1 2 3 4 5 6 7 | mysql> SELECT CAST ( '3.35' AS signed); + ------------------------+ | CAST ( '3.35' AS signed) | + ------------------------+ | 3 | + ------------------------+ 1 row in set |
像上面例子一样,将varchar 转为int 用 cast(a as signed),其中a为varchar类型的字符串。
例4
在SQL Server中,下面的代码演示了datetime变量中,仅包含单纯的日期和单纯的时间时,日期存储的十六进制存储表示结果。
1 2 3 4 5 6 7 8 9 10 11 | DECLARE @dt datetime --单纯的日期 SET @dt= '1900-1-2' SELECT CAST (@dt as binary (8)) --结果: 0x0000000100000000 --单纯的时间 SET @dt= '00:00:01' SELECT CAST (@dt as binary (8)) --结果: 0x000000000000012C |
MySQL的类型转换和SQL Server一样,就是类型参数有点点不同:CAST(xxx AS 类型) ,CONTVER(xxx,类型)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)