Ceil : cast ( x as int ) + ( x > cast ( x as int ))
取 x 的整数部分,如果十进制值大于 0 则加 1 
Floor : 如果十进制值小于 0,则
cast ( x as int ) - ( x < cast ( x as int ))
取 x 的整数部分并减 1
天花板 : 
SELECT (cast ( amount as int ) + ( amount > cast ( amount as int ))) AS amount
FROM SALES WHERE id = 128;
地板 :
SELECT (cast ( amount as int ) - ( amount < cast ( amount as int ))) AS amount
FROM SALES WHERE id = 128;
我已经用 MySQLceil()和floor()函数检查了所有的极端情况,包括负数。
您可以使用ROUND()到的效果CEIL和FLOOR如果从数量上手加或减0.5。我更喜欢这个,因为它可以更具可读性。
扩展 Anees 的例子:
天花板:SELECT ROUND(amount+0.5, 0) AS amount FROM SALES WHERE id = 128;
地板:SELECT ROUND(amount-0.5, 0) AS amount FROM SALES WHERE id = 128;
感谢 Anees 在下面的评论,我也没有想到那个角落案例。他的解决方案更加稳健。
| 归档时间: | 
 | 
| 查看次数: | 4827 次 | 
| 最近记录: |