eminem 发表于 2013-1-25 22:40:58

SQL里有取整函数,四舍五入函数,和截取函数

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.
页: [1]
查看完整版本: SQL里有取整函数,四舍五入函数,和截取函数