数学函数:
1.round 四舍五入
sql
select round(1.45);//不管正负数,先将绝对值round,然后加正负号
select round(1.567,2); //表示小数点保留2位
2.ceil 向上取整
sql
select ceil(-1.3);
3.floor 向下取整
4.truncate 截断
sql
select truncate(1.65,1); // 结果保留小数1位:1.6
5.mod 取余
sql
select mod(10,3); java中的mod一样: mod(a,b)====a-a/b*b(计算机中整数除以整数的结果还是整数),结论被除数是正,结果就是正,被除数是负结果就是负数
日期函数:
1.now 用户返回当前日期时间
sql
select now();
2.curdate 返回当前系统日期,没有时间部分
3.curtime 返回当前系统时间,没有日期部分
4.可以单独获取年/月/日
sql
select year(now()); 取得年
select year('2004-1-1') ;
select month(now()); 取得月
select monthname(now()); 取得月名..day hour minute second一样
date_format:将日期换换成字符串,或者理解为格式化日期
date_format(now(),'%y-%m-%d');
案例:查询入职日期是1992-4-3的员工信息
sql
select * from employees where hiredate='1992-4-3'; //能找到
select * from employees where hiredate=STR_TO_DATE('1992 4 3','%Y %m %d');
str_to_date:将日期格式的字符转换层指定格式的日期
str_to_date('2018-1-12','%y-%m-%d'); // 这个函数不会给我返回值,用在where条件里!
系统函数:
1.select version();
//查看mysql版本
2.select datebase();
//查看当前使用的数据库
3.select user();
//查看当前用户
流程控制函数:
1.if函数
sql
select if(10>1,'大','小');
2.case函数
sql
case 要判断的子段或表达式
when case的结果是常量1 then 要显示的值1(或语句1;)
when case的结果是常量2 then 要显示的值2(或语句2;)
......
else case的结果都不前面的时候显示;
end 结束
案例:员工表中, 部门号是30,显示的工资是1.1倍,部门号是40,显示的工资是1.2倍,其他显示原工资
sql
SELECT salary AS 原工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 50 THEN salary*1.2
ELSE salary
END AS 新工资
FROM employees;