MySQL数据库中CAST与CONVERT函数实现类型转换的讲解
程序员文章站
2022-06-07 15:29:35
mysql 的cast()和convert()函数可用来获取一个类型的值,并产生另一个类型的值。
两者具体的语法如下:
cast(value as type);...
mysql 的cast()
和convert()
函数可用来获取一个类型的值,并产生另一个类型的值。
两者具体的语法如下:
cast(value as type); convert(value, type);
就是cast(xxx as 类型), convert(xxx,类型)。
可以转换的类型是有限制的。这个类型可以是以下值其中的一个:
二进制,同带binary前缀的效果 : binary
例如:当使用 like 模糊搜索日期类型的字段时 语句应该是 create_time like binary concat(‘%',#{createtime},'%')
- 字符型,可带参数 : char()
- 日期 : date
- 时间: time
- 日期时间型 : datetime
- 浮点数 : decimal
- 整数 : signed
- 无符号整数 : unsigned
下面举几个例子:
例一
mysql> select convert(‘23',signed); +———————-+ | convert(‘23',signed) | +———————-+ | 23 | +———————-+ 1 row in set
这个例子是将varchar类型转化成int类型。
例二
mysql> select cast('125e342.83' as signed); +------------------------------+ | cast('125e342.83' as signed) | +------------------------------+ | 125 | +------------------------------+ 1 row in set
例三
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类型的字符串。
例四
在sql server中,下面的代码演示了datetime变量中,仅包含单纯的日期和单纯的时间时,日期存储的十六进制存储表示结果。
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 类型) , convert(xxx,类型)。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接