Oracle函数和mysql函数比较

cnzou 2009-12-31

1.Oracle中的to_number()转换成数字;

Oracle>Selectto_number(‘123’)fromdual;-----123;

selectto_char(33)fromdual;----33;

Mysql>Selectconv(‘123’,10,10);----123;

Selectcast(‘123’assignedinteger);---123

Selectcast(‘-123’assignedinteger);----123

selectcast(33aschar(2));-------33;

selectchar(33);--------------------!;(ascll)

对应的mysql函数是conv(N,from_base,to_base),在不同的数字基之间变换数字。返回数字N的字符串数字,从from_base基变换为to_base基,如果任何参数是NULL,返回NULL。参数N解释为一个整数,但是可以指定为一个整数或一个字符串。最小基是2且最大的基是36。如果to_base是一个负数,N被认为是一个有符号数,否则,N被当作无符号数。CONV以64位点精度工作。

cast中的signed表示有符号数;

2.四舍五入函数区别

Oracle>selectfloor(12.89*10)/10fromdual;--12.8

selectceil(12.82*10)/10fromdual;--12.9

selectround(12.86*10)/10fromdual;--12.9

selectround(12.84*10)/10fromdual;--12.8

mysql>selectfloor(12.89*10)/10fromdual;--12.8000

selectfloor(12.89)fromdual;--12

selectceil(12.89*10)/10fromdual;--12.9000

selectceil(12.89)fromdual;--13

selectround(12.89*10)/10fromdual;--12.9000

selectround(12.83*10)/10fromdual;--12.8000

selectround(12.89,1)fromdual;--12.9

selectround(12.83,1)fromdual;--12.8

selectformat(12.89,1)/fromdual;--12.9

selectformat(12.83,1)/fromdual;--12.8

3.日期时间函数

Oracle>selectsysdatefromdual;--日期时间

Mysql>selectsysdate();--日期时间

selectcurrent_date();--日期

4.Decode函数

Oracle>selectdecode(sign(12),1,1,0,0,-1)fromdual;---1

Mysql>selectcasewhensign(12)=1then1whensign(12)=0then0else-1end;---1

Mysql中好像没有decode函数所以只能用case-when来代替了

5.nvl函数

Oracle>selectnvl(1,0)fromdual;----1

Mysql>selectifnull(1,0);------1

今天就说这些吧,以后有新的发现再继续补上。。。。。。

相关推荐