CEIL 和 CEILING 向上取整

 CEIL(x) 和 CEILING(x)取整函数的含义相同,返回不小于 x 的最小整数值,返回值转化为一个 BIGINT。

示例用法

(1)将一个正数向上取整

mysql> SELECT CEIL(-2.5),CEILING(-2.5);
+------------+---------------+
| CEIL(-2.5) | CEILING(-2.5) |
+------------+---------------+
|         -2 |            -2 |
+------------+---------------+
1 row in set (0.04 sec)

由执行结果可知,-2.5 为负数,不小于 -2.5 的最小整数为 -2,因此返回值为 -2。

(2)将一个负数向上取整

mysql> SELECT CEIL(2.5),CEILING(2.5);
+-----------+--------------+
| CEIL(2.5) | CEILING(2.5) |
+-----------+--------------+
|         3 |            3 |
+-----------+--------------+
1 row in set (0.04 sec)

由执行结果可知,不小于 2.5 的最小整数为 3,因此返回值为 3。

(3)如果向 CEIL() 和 CEILING() 函数传递的是数字字符串,该函数会自动将字符串转换成数字。

mysql> select CEIL('-2.5'), CEILING('2.5');
+--------------+----------------+
| CEIL('-2.5') | CEILING('2.5') |
+--------------+----------------+
|           -2 |              3 |
+--------------+----------------+
1 row in set (0.04 sec)

由执行结果可知,CEIL() 和 CEILING() 函数将字符串转换成数字后再进行向上取整。

(4)如果传递给 CEIL() 和 CEILING() 函数的字符串中包含非数字字符,它们将怎样进行处理呢?

mysql> select CEIL('-2.5X'), CEILING('2.5X'), CEIL('X-2.5'), CEILING('X2.5');
+---------------+-----------------+---------------+-----------------+
| CEIL('-2.5X') | CEILING('2.5X') | CEIL('X-2.5') | CEILING('X2.5') |
+---------------+-----------------+---------------+-----------------+
|            -2 |               3 |             0 |               0 |
+---------------+-----------------+---------------+-----------------+
1 row in set (0.04 sec)

由执行结果可知,CEIL() 和 CEILING() 函数将从左到右截取符合数字格式的字符串,然后将它转换成数字进行向上取整。如果传递给 CEIL() 和 CEILING() 函数的字符串以非数字开头,则返回0。

(5)如果传递 NULL 给 CEIL() 和 CEILING() 函数,则返回 NULL。

mysql> select CEIL(NULL), CEILING(NULL);
+------------+---------------+
| CEIL(null) | CEILING(null) |
+------------+---------------+
| NULL       | NULL          |
+------------+---------------+
1 row in set (0.04 sec)
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号