函數: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.