欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL数据库中CAST与CONVERT函数实现类型转换的讲解

程序员文章站 2023-11-01 21:25:34
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,类型)。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接