MySQL CAST与CONVERT 函数的用法

MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。两者具体的语法如下:1  CAST(value as type);  
2  CONVERT(value, type);  

就是CAST(xxx AS 类型), CONVERT(xxx,类型)。
可以转换的类型是有限制的。这个类型可以是以下值其中的一个:

二进制,同带binary前缀的效果 : BINARY    
字符型,可带参数 : CHAR()     
日期 : DATE     
时间: TIME     
日期时间型 : DATETIME     
浮点数 : DECIMAL      
整数 : SIGNED     
无符号整数 : UNSIGNED 
下面举几个例子:
例一1  mysql> SELECT CONVERT('23',SIGNED);  
2  +----------------------+  
3  | CONVERT('23',SIGNED) |  
4  +----------------------+  
5  |                   23 |  
6  +----------------------+  
7  1 row in set  

例二1  mysql> SELECT CAST('125e342.83' AS signed);  
2  +------------------------------+  
3  | CAST('125e342.83' AS signed) |  
4  +------------------------------+  
5  |                          125 |  
6  +------------------------------+  
7  1 row in set  

例三1  mysql> SELECT CAST('3.35' AS signed);  
2  +------------------------+  
3  | CAST('3.35' AS signed) |  
4  +------------------------+  
5  |                      3 |  
6  +------------------------+  
7  1 row in set  

像上面例子一样,将varchar 转为int 用 cast(a as signed),其中a为varchar类型的字符串。
例4
在SQL Server中,下面的代码演示了datetime变量中,仅包含单纯的日期和单纯的时间时,日期存储的十六进制存储表示结果。01  DECLARE @dt datetime  
02      
03  --单纯的日期  
04  SET @dt='1900-1-2'  
05  SELECT CAST(@dt as binary(8))  
06  --结果: 0x0000000100000000  
07      
08  --单纯的时间  
09  SET @dt='00:00:01'  
10  SELECT CAST(@dt as binary(8))  
11  --结果: 0x000000000000012C  

MySQL的类型转换和SQL Server一样,就是类型参数有点点不同:CAST(xxx AS 类型) ,CONVERT(xxx,类型)。

原文地址:http://www.nowamagic.net/librarys/veda/detail/2044

posted @ 2013-09-24 14:23  老骆  阅读(169)  评论(0)    收藏  举报