ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL基础(六)--MySQL基本函数的使用

2021-11-17 23:58:53  阅读:172  来源: 互联网

标签:函数 -- SALES dname 日期 MySQL DATE deptno


MySQL函数

在这里插入图片描述

数字函数

在这里插入图片描述
在这里插入图片描述

日期函数

获取系统时间函数:
NOW()函数能获得系统日期和时间,格式yyyy-MM-dd hh:mm:ss
CURDATE()函数能获得当前系统日期,格式yyyy-MM-dd
CURTIME()函数能获得当前系统时间,格式hh:mm:ss
日期格式化函数:
DATE_FORMAT(日期, 表达式) 函数用于格式化日期,返回用户想要的日期格式。
其中,表达式有以下多种格式:
在这里插入图片描述
案例:
利用日期函数,查询1981年上半年入职的员工有多少人?

SELECT COUNT(*) FROM t_emp
WHERE DATE_FORMAT(hiredate, "%Y")=1981
AND DATE_FORMAT(hiredate, "%m")<=6;

日期计算的注意事项:
MySQL数据库里面,两个日期不能直接加减,日期也不能与数字加减。
日期偏移计算:
DATE_ADD()函数可以实现日期的偏移计算,而且时间单位很灵活。
在这里插入图片描述
案例:

SELECT DATE_ADD(NOW(), INTERVAL 15 DAY);
SELECT DATE_ADD(NOW(), INTERVAL -300 MINUTE);
SELECT DATE_ADD(DATE_ADD(NOW(), INTERVAL -6 MONTH), INTERVAL -3 DAY);

计算日期之间相隔的天数:
DATEDIFF()函数用来计算两个日期之间相差的天数
在这里插入图片描述

字符函数

在这里插入图片描述
在这里插入图片描述

条件函数

判断是否为null并替换null值:
在这里插入图片描述
if 函数,表达式为真时返回第一个值,否则返回第二个值:
在这里插入图片描述
条件语句:
在这里插入图片描述

案例:
SALES部门发放礼品A,其余部门发放礼品B,打印每名员工获得的礼品

SELECT 
	e.empno, e.ename, d.dname,
	IF(d.dname="SALES","礼品A","礼品B")
FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno;

SALES部门去平p1地点,ACCOUNTING部门去p2地点,RESEARCH部门去p3地点

SELECT 
	e.empno, e.ename, d.dname,
	CASE
		WHEN d.dname="SALES" THEN "p1"
		WHEN d.dname="ACCOUNTING" THEN "p2"
		WHEN d.dname="RESEARCH" THEN "p3"
	END AS place
FROM t_emp e JOIN t_dept d ON e.deptno=d.deptno;

SALES部门中工龄超过20年,10%
SALES部门中工龄不满20年,5%
ACCOUNTING部门,300元
RESEARCH部门里低于部门平均底薪,200元
没有部门的员工,100元

UPDATE t_emp e LEFT JOIN t_dept d ON e.deptno = d.deptno 
LEFT JOIN (SELECT deptno, AVG(sal) AS avg FROM t_emp GROUP BY deptno) t
ON e.deptno=t.deptno
SET sal=(
	CASE 
		WHEN d.dname= "SALES" AND DATEDIFF(NOW(), e.hiredate)/365>=20
		THEN e.sal*1.1
		WHEN d.dname= "SALES" AND DATEDIFF(NOW(), e.hiredate)/365<20
		THEN e.sal*1.05
		WHEN d.dname="ACCOUNTING" THEN e.sal+300
		WHEN d.dname="RESEARCH" AND e.sal<t.avg THEN e.sal+200
		WHEN e.deptno IS NULL THEN e.sal+100
		ELSE e.sal
	END
);

标签:函数,--,SALES,dname,日期,MySQL,DATE,deptno
来源: https://blog.csdn.net/qq_32091929/article/details/121353387

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有