MySql 那些你不知道的 类型转化函数
呵,刚才想了一下这一系列MySql的教程,为什么叫“那些你不知道的”呢?
其实,原因很简单,因为在系统的看这些东西之前,这些都是我不知道的。或者是知道也想不起来的那些知识点。
所以,取这个题目,只是为了提醒自己,这些东西自己曾经不知道,虽然现在有时候也爱忘。
不过回头翻一下,总是能很容易的想起来。毕竟,这里面的代码都是我一行一行敲出来的,而且不仅仅是复制粘贴那么简单的。
好了, 闲话不说,来继续看一下MySql 那些类型转化函数吧——其实就一个,呵呵,那就是CAST()
虽然只有一个函数,不过我还是认为我们有必要来学习一下。或者,是我自己有必要知道有这么个东西。 ![]()
其实学习CAST()这么一个函数的真正意义在于,你要知道都可以转换成哪些指定的数据类型
这才是重要的。
还记得我们之前说过的BINARY()这个函数了吗?没错,就是它,区分大小写时我们经常使用的这个函数。
其实BINARY str 是CAST(str AS BINARY)的缩略形式。
那么好吧,让我们来看一下CAST()函数都支持哪几种类型的转换:
BINARY, CHAR, DATE, TIME, DATETIME, SIGNED, UNSIGNED
先来看看用CAST()怎么实现BINARY的功能:
/*
binary_str cast_binary_str
0 0
*/
CAST()将日期和时间函数转为数值型而不是字符串型输出:
呵,先来说一下为何要有这种要求。那是因为我们经常要进行日期,时间的加减运算。嗯。
/*
cast(now() as signed integer) curdate()+0
20090529154018 20090529
*/
当我们要把数据转移到一个新的RDBMS(关系型数据库)时,CAST()函数就显得尤其有用,
因为它允许我们把值从旧数据类型转变为新的数据类型,以使它们更适合新的系统。
这个也把书中的例子抄过来吧。如果没有例子还真不容易让人信服。呵呵。
假设下面的表不是MySql的,它以字符串形式存储日期值:
/*
email day month year hour min
xiaoxiaozi@gmail.com 15 03 1999 13 42
xiaoxiaozi@qq.com 31 12 2001 19 59
xiaoxiaozi@tom.com 08 11 1996 03 37
*/
我们要把其移动至MySql中,第一步先创建表来在座这些数据,:
email varchar(255) not null default '',
time datetime not null default '0000-00-00 00:00:00',
primary key (email)
)
type = myisam;
然后从旧的表中把数据导入新表,并把值转为定义中的类型:
就这么一句,帅不?嘿嘿,一切问题搞定。嗯。。
文章作者:simaopig
本文地址:http://www.xiaoxiaozi.com/2009/05/29/681/
版权所有 © 转载时必须以链接形式注明作者和原始出处!