数学类函数:
1、round --- 四舍五入
select round(4.56); 结果为4
select round(4.567,2) ; 结果为4.57
2、cell --- 向上取整
select cell(1.56); 结果为2
select cell(-1.56) ; 结果为-1
3、floor --- 向下取整
4、truncate --- 截取
select truncate(1.56,1); 结果为1.5
5、mod 取余
select mod(10,3); 结果为1
select mod(-10,3); 结果为-1
select mod(10,-3); 结果为1
select mod(-10,-3); 结果为-1
总结:结果取决说被除数的符号 a-(a/b*b)
日期函数:
1、now --- 当前日期及时间
2、curdate---当前日期
3、curtime---当前时间
4、单独取出年月日时分秒
select year(now()); 同理其它分别为month、day、hour、minute、second
5、STR_TO_DATE 将字符串转换为时间格式
select STR_TO_DATE('2019-08-27','%y-%m-%d');
6、DATE_FORMAT 将时间转换为其它格式
select DATE_FORMAT(now(), '%y-%m-%d'); 结果:2019-08-27
select DATE_FORMAT(now(), '%y/%m/%d'); 结果:2019/08/27
序号 | 格式符 | 功能 |
1 | %y | 两位数年份,比如19 |
2 | %Y | 四位数年份,比如2019 |
3 | %m | 月份,比如01、02~12 |
4 | %c | 月份,比如1、2、3~12 |
5 | %d | 日 |
6 | %H | 小时,24小时制 |
7 | %h | 小时,12小时制 |
8 | %i | 分钟,01、02、03~59 |
9 | %s | 秒,01、02、03~59 |
举例:查询2018年7月1日入职人员
select * FROM employees WHERE 'hiredate'='2018-7-1' ; //mySQL默认会自动容错调用STR_TO_DATE
但是如果后面换成‘2018年7月1日’就不行,就需要世如下格式
select * FROM employees WHERE 'hiredate'=STR_TO_DATE('2018年7月1日','%Y年%c月%d日');
条件判断
1、if函数
select if (判断条件, 为真结果,为假结果);
2、case函数
SELECT
CASE 条件
WHEN 常量1 THEN 要显示数值或则语句
WHEN 常量n THEN 要显示数值或则语句
ELSE 要显示数值或则语句
END
SELECT salary AS 原工资,deparment_id,
CASE deparment_id
WHEN 30 THEN salary*1.1
WHEN 50 THEN salary*1.2
ELSE salary
END
AS 新工资
FROM employess
3 、多重条件判断
SELECT
CASE
WHEN 条件1 THEN 要显示数值或则语句
WHEN 条件n THEN 要显示数值或则语句
ELSE 要显示数值或则语句
END
注意、条件1~条件n之间要互斥