1、ROUND(x,d)
用於數據的四舍五入,ROUND(x)其實就是ROUND(x,0),也就是默認d為0;這里有個值得注意的地方是,d可以是負數,這時是指定小數點左邊的d位整數位為0,同時小數位均為0。
SELECT ROUND(100.3465,2),ROUND(100,2),ROUND(0.6,2),ROUND(114.6,-1);
結果分別:>100.35,100,0.6,110
2、TRUNCATE(x,d)
函數返回被舍去至小數點后d位的數字x。若d的值為0,則結果不帶有小數點或不帶有小數部分。若d設為負數,則截去(歸零)x小數點左起第d位開始后面所有低位的值。
SELECT TRUNCATE(100.3465,2),TRUNCATE(100,2),TRUNCATE(0.6,2),TRUNCATE(114.6,-1);
結果分別:>100.34,100,0.6,110
3、FORMAT(X,D)
強制保留D位小數,整數部分超過三位的時候以逗號分割,並且返回的結果是string類型的
SELECT FORMAT(100.3465,2),FORMAT(100,2),FORMAT(,100.6,2);
結果分別:100.35,100.00,100.60
4、convert(value,type)
類型轉換,相當於截取。type如下:
♥ 二進制,同帶binary前綴的效果 : BINARY
♥字符型,可帶參數 : CHAR()
♥日期 : DATE
♥時間: TIME
♥日期時間型 : DATETIME
♥浮點數 : DECIMAL
♥整數 : SIGNED
♥無符號整數 : UNSIGNED
SELECT CONVERT(100.3465,DECIMAL(10,2)), CONVERT(100,DECIMAL(10,2)),CONVERT(100.4,DECIMAL(10,2));
結果分別:100.35,100,100.4
5、 FLOOR(x)
函數返回小於 x 的最大整數值。
問與答
Q: floor可以向下取整保留兩位小數嗎?
A: floor函數做不到,她只返回整數部分,小數部分舍棄。建議使用ROUND函數進行四舍五入。