函数:MySQL中取整函数round和floor

示例:

 round(123.456,2)    

  ------------ 

  123.47

ROUND   (   numeric_expression   ,   length   [   ,   function   ]   )   

  参数 

  numeric_expression 

  

  精确数字或近似数字数据类型类别的表达式(bit   数据类型除外)。 

  

  length 

  

  是   numeric_expression   将要四舍五入的精度。length   必须是   tinyint、smallint   或int。当   length   为正数时,numeric_expression   四舍五入为   length   所指定的小数位数。当   length   为负数时,numeric_expression   则按   length   所指定的在小数点的左边四舍五入。 

  

  function 

  

  是要执行的操作类型。function   必须是   tinyint、smallint   或   int。如果省略   function   或   function   的值为   0(默认),numeric_expression   将四舍五入。当指定   0   以外的值时,将截断   numeric_expression。 

round(123.456,   0)   

  -------       

  123.000 

  

  SELECT   FLOOR(123.45),   FLOOR(-123.45),   FLOOR($123.45) 

  ---------             ---------           ----------- 

  123                         -124                     123.0000       

  

  SELECT   CEILING(123.45),   CEILING(-123.45),   CEILING(0.0) 

  以下為結果集: 

  ---------   ---------   -------------------------   

  124               -123                   0   

///////////////////////////////////////////////////////////

ORACLE的TRUNC包罗万象,DB2的TRUNC只是给数字用的。但象DATE等都能实现。比如,DATE(A TIMESTAMP FIELD)会把TIMESTAMP后面的都拿掉,成了一个PURE DATE,就象ORACLE的TRUNC(SYSDATE)会把后面的时间拿掉一样。

SQL> select trunc(2345.6789,2) from dual;

TRUNC(2345.6789,2)

------------------

           2345.67

/home/db2inst > db2 -v "select decimal(2345.6789,10,2) from sysibm.sysdummy1"

select decimal(2345.6789,10,2) from sysibm.sysdummy1

1

------------

     2345.67

  1 record(s) selected.

posted @ 2011-07-25 08:48  Glawind  阅读(36778)  评论(0编辑  收藏  举报