函数 | 功能 |
CEIL(x) | 向上取整 |
FLOOR(x) | 向下取整 |
MOD(x,y) | 返回x/y的模(取余) |
RAND() | 返回0-1的随机数 |
ROUND(x,y) | 求参数x的四舍五入,保留y位小数 |
1、向上取整:CEIL。只要小数点后的数字大于0就取整。
select CEIL(1.2);
select CEIL(1.8);
select CEIL(1.0);
2、向下取整:FLOOR。只要小数点后的数字大于0就向下取整。
select FLOOR(1.2);select FLOOR(1.0);select FLOOR(1.6);
3、返回模,取余,MOD
select MOD(1,3);
select MOD(7,4);
4、返回随机数:RAND
select rand();
5、求四舍五入的值,保留小数位:ROUND
select ROUND(2.33333,2);
select ROUND(2.33833,2);
案例:通过数据库函数,生成一个6位数的随机验证码
第一步:#首先生成随机数0-1:
SELECT RAND();
第二步:#随机数是0-1之间的,乘以1000000
SELECT RAND()*1000000;
可以看到有小数位
第三步:直接使用ROUNGD保留0个小数位
SELECT ROUND(RAND()*1000000,0);
第四步:这样貌似完成了,但是还是有bug的,假如生成随机数是0.02345543343..,四舍五入之后是
SELECT ROUND(0.02345543343*1000000,0);
可以发现是个5位数的,bug了吧!!!!!!!!!!!
第五步:保证一定是6位数,我们可以使用数值函数的左填充(LPAD)或右填充(RPAD)
SELECT LPAD(ROUND(0.02345543343*1000000,0),6,'0');
SELECT LPAD(ROUND(RAND()*1000000,0),6,'0');