mysql偏移函数_mysql 常用函数

-- 绝对值 100

select abs(-100)

-- 四舍五入 保留两位小数 4.6300

select round(4.6288*100)/100

-- 向下取整 9

select floor(9.9)

-- 向上取整 4

select CEIL(3.2)

-- 2的3次幂

SELECT power(2,3)

当前时间

now(), 2019-08-09 09:22:51

curdate(),  2019-08-09

curtime() 09:22:51

格式化日期

select DATE_FORMAT(now(),'%Y')     2019

DATE_FORMAT(now(),'%m')    08

DATE_FORMAT(now(),'%d')   09

DATE_FORMAT(now(),'%H')  09 小时(24)

DATE_FORMAT(now(),'%h')  09  小时(12)

DATE_FORMAT(now(),'%i')   47  分钟

DATE_FORMAT(now(),'%s')   20  秒

DATE_FORMAT(now(),'%w')   5  星期5

DATE_FORMAT(now(),'%W')    Friday     星期5

DATE_FORMAT(now(),'%j')    本年第几天  221

DATE_FORMAT(now(),'%U')     本年第几周  31

DATE_FORMAT(now(),'%r')  时间(24) 09:48:01 AM

DATE_FORMAT(now(),'%T')   时间(12) 09:48:42

日期偏移计算

SELECT DATE_ADD(NOW(),INTERVAL 5 DAY)    2019-08-14 10:07:19   增加5天

SELECT DATE_ADD(NOW(),INTERVAL -5 DAY)   2019-08-04 10:08:24   减少5天

SELECT DATE_ADD(NOW(),INTERVAL -5 MINUTE)   减少5分钟

SELECT DATE_ADD(NOW(),INTERVAL -5 HOUR)      减少5小时

SELECT DATE_FORMAT(DATE_ADD(NOW(),INTERVAL -5 HOUR) ,"%Y/%m/%d")     2019/08/09

计算两个时间 相差天数

SELECT DATEDIFF('2019-7-9',NOw())     -31

字符函数

select LOWER('ERIC')   eric  转小写

select upper('eric')   ERIC  转大写

select LENGTH ('eric') 计算长度 4

select CONCAT('eric','love','beijing')   字符串拼接   ericlovebeijing

select INSERT('你好',1,0,'先生')  插入替换字符  先生你好

select INSTR('eric','r')   2 字符出现的位置  没有返回0

select REPLACE('你好先生','先生','女士')     你好女士  字符替换

字符串截取

select SUBSTR('你好世界',3,4) 世界

select SUBSTRING('你好世界',3,1) 世

select LPAD(SUBSTRING('13312345678',8,4),11,"*")   *******5678

select RPAD(SUBSTRING('13312345678',1,7),11,"*")   1331234****

select REPLACE('13312345678',SUBSTRING('13312345678',4,4), '****')     133****5678

select RPAD(SUBSTRING('李晓娜',1,1),3,'*') 李**

select TRIM('   Hello World      ')    去除两边空格

条件判断 表达式

select

e.ename,e.empno,d.dname,

if(d.dname = "SALES",'礼品A','礼品B')

from t_emp e

join t_dept d on d.deptno = e.deptno

SMITH 7369 RESEARCH 礼品B

ALLEN7499SALES礼品A

WARD7521SALES礼品A

JONES7566RESEARCH礼品B

MARTIN7654SALES礼品A

BLAKE7698SALES礼品A

/**

SALES 去p1

ACCOUNTING 去p2

RESEARCH 去p3

没部门的 去p4

*/

select

e.ename,e.empno,d.dname,

CASE

WHENd.dname = "SALES" THEN 'P1'

WHENd.dname = "ACCOUNTING" THEN 'P2'

WHENd.dname = "RESEARCH" THEN 'P3'

ELSE 'P4'

END as place

from t_emp e

left join t_dept d on d.deptno = e.deptno

ADAMS 7876 RESEARCH P3

FORD7902RESEARCHP3

ALLEN7499SALESP1

WARD7521SALESP1

MARTIN7654SALESP1

BLAKE7698SALESP1

TURNER7844SALESP1

JAMES7900SALESP1

李四6789P4

/**

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 t.deptno = e.deptno

set e.sal = (

CASE

WHEN d.dname = 'SALES' AND DATEDIFF(NOW(),e.hiredate)/365 >= 20 THEN sal * 1.1

WHEN d.dname = 'SALES' AND DATEDIFF(NOW(),e.hiredate)/365 < 20 THEN 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 sal + 100

else e.sal

END

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值