MySQL学习笔记(六)_数学函数,日期函数,流程控制函数
2019-07-13 20:35
393 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43673818/article/details/95789350
常见函数
3、数学函数
-
round 四舍五入
SELECT ROUND(-1.45); SELECT ROUND(1.567, 2); 小数点后保留2位
-
ceil 向上取整,返回>=该参数的最小整数
SELECT CEIL();
-
floor 向下取整,返回<=该参数的最大整数
SELECT FLOOR();
-
truncate 截断
SELECT TRUNCATE(1.65, 1); 小数点后保留1位
-
mod:取余
SELECT MOD(-10, -3); SELECT 10 % 3;
4、日期函数
-
now 返回当前系统日期+时间
SELECT NOW();
-
curdate:返回当前系统日期,不包含时间
SELECT CURDATE();
-
curtime:返回当前时间,不包含日期
SELECT CURTIME();
-
可以获取指定的部分,年,月,日,小时,分钟,秒
SELECT YEAR(NOW()) 年; SELECT YEAR('1998-1-1') 年; SELECT YEAR(hiredate) 年 FROM employees; SELECT MONTH(NOW()) 月; SELECT MONTHNAME(NOW()) 月;
-
str_to_date:将日期格式的字符转换成指定格式的日期
序号 格式符 功能 1 %Y 四位的年份 2 %y 2位的年份 3 %m 月份(01,02…11,12) 4 %c 月份(1,2,…11,12) 5 %d 日(01,02,) 6 %H 小时(24小时制) 7 %h 小时(12小时制) 8 %i 分钟(00,01…59) 9 %s 秒(00,01,…59) SELECT STR_TO_DATE('1998-3-2','%Y-%c-%d') AS out_put; 查询入职日期为1992-4-3的员工信息 SELECT * FROM employees WHERE hiredate = '1992-4-3'; 当用户输入的日期格式和标准格式不同时: SELECT * FROM employees WHERE hiredate = STR_TO_DATE('4-3-1992', '%c-%d %Y');
-
date_format:将日期转换成字符
SELECT DATE_FORMAT(NOW(),'%y年%m月%d日') AS out_put;
案例:查询有奖金的员工名和入职日期(xx月/xx日 xx年)
SELECT last_name, DATE_FORMAT(hiredate, '%m月/%d日 %y年') FROM employees WHERE commissions IS NOT NULL;
5、其他函数
SELECT VERSION(); SELECT DATABASE(); SELECT USER();
6、流程控制函数
-
if函数: if else 的效果
SELECT IF(10 > 5, '大', '小'); SELECT last_name, commission_pct, IF(commission_pct IS NULL,'没奖金','有奖金') FROM employees;
-
case函数的使用一:switch case的效果
case 要判断的字段或表达式 when 常量1 then 要显示的值1或语句1; when 常量2 then 要显示的值2或语句2; ... else 要显示的值n或语句n; end
案例:查询员工的工资,要求
部门号=30,显示的工资为1.1倍
部门号=40,显示的工资为1.2倍
部门号=50,显示的工资为1.3倍
其他部门显示原工资
SELECT salary 原始工资,department_id, CASE department_id WHEN 30 THEN salary * 1.1 WHEN 40 THEN salary * 1.2 WHEN 50 THEN salary * 1.3 ELSE salary END AS 新工资 FROM employees;
3.case函数的使用二:类似于 多重if
case when 条件1 then 要显示的值1或语句1(语句则要加;) when 条件2 then 要显示的值2或语句2 ... else 要显示的值n或语句n end
案例:查询员工的工资的情况
如果工资>20000,显示A级别
如果工资>15000,显示B级别
如果工资>10000,显示C级别
否则,显示D级别
SELECT last_name, salary, CASE WHEN salary > 20000 THEN 'A' WHEN salary > 15000 THEN 'B' WHEN salary > 10000 THEN 'C' ELSE 'D' END AS 工资级别 FROM employees;
相关文章推荐
- mysql学习笔记(四)--- 聚合函数、控制流程函数
- 数据库MySQL-6-常用的加密函数、聚合函数、数学相关函数、字符相关函数、日期函数、流程控制函数
- 【Scala学习笔记】2. 函数定义、流程控制、异常处理
- python学习笔记(二)流程控制 函数
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- MySQL学习笔记18:数学函数
- Bash学习笔记(4)----流程控制与函数
- MySQL学习笔记18:数学函数
- [知了堂学习笔记]_MySQL函数_字符串函数_数学函数_日期函数
- Shell学习笔记(13)-流程控制之函数
- 黑马程序员——学习笔记03.java流程控制语句和函数
- 学习笔记 Java_毕向东_流程控制语句_函数_数组 2014.7.30
- Scala学习笔记05【Scala函数定义、流程控制、异常入门】
- MySql学习day04 索引 index 视图 view MySql扩充 MySql编程的基础知识 流程控制语句 系统函数
- php学习基础篇之基础函数(数学 日期 字符串)、php循环流程控制
- MySQL学习笔记18:数学函数
- Go学习笔记 (二) : 流程控制(if,for,switch) 与 函数 与 struct (匿名字段)
- jBPM-jPDL学习笔记——流程设计与控制
- Delphi 2010学习笔记(16)---流程控制的注意事项---2011-01-21
- perl学习笔记四----流程控制