Mysql函数

函数(常用)

字符串函数

image-20230730202418762

注:这里的字符串是从1开始的(不是0)

例:

  • emp 表中雇员姓名首字母大写其余字母小写. 如 SCOTT => Scott
 SELECT CONCAT(UPPER(substr(ename,1,1)),lower(substr(ename,2))) AS ename FROM emp;
  • 给每个雇员的 JOB 前加上 KFM- 前缀
SELECT CONCAT('KFM-',job) AS job from emp;
  • 给每个雇员的 JOB 后加上部门名称
SELECT CONCAT(e.job,'-',d.dname) AS job from emp e JOIN dept d ON e.deptno=d.deptno;

数学函数

image-20230730204550922

日期函数

image-20230730204936438

image-20230730204847631

image-20230730204904228

image-20230730204918085

type 值可以是**😗*

  • MICROSECOND 微秒

  • SECOND 秒

  • MINUTE 分钟

  • HOUR 小时

  • DAY 天

  • WEEK 周MONTH 月

  • QUARTER 季度

  • YEAR 年

  • MINUTE_SECOND 分钟:秒

  • HOUR_SECOND 小时:分钟 : 秒

  • HOUR_MINUTE 小时:分钟

  • DAY_SECOND 天 小时:分钟:秒

  • DAY_MINUTE 天 小时:分钟

  • DAY_HOUR 天 小时

  • YEAR_MONTH 年-月

  • 可以被用在format字符串**😗*

  • %M 月名字(January……December)

  • %W 星期名字(Sunday……Saturday)

  • %D 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)

  • %Y 年, 数字, 4 位

  • %y 年, 数字, 2 位

  • %a 缩写的星期名字(Sun……Sat)

  • %d 月份中的天数, 数字(00……31)

  • %e 月份中的天数, 数字(0……31)

  • %m 月, 数字(01……12)

  • %c 月, 数字(1……12)

  • %b 缩写的月份名字(Jan……Dec)

  • %j 一年中的天数(001……366)

  • %H 小时(00……23)

  • %k 小时(0……23)

  • %h 小时(01……12)

  • %I 小时(01……12)

  • %l 小时(1……12)

  • %i 分钟, 数字(00……59)

  • %r 时间,12 小时(hh:mm:ss [AP]M)

  • %T 时间,24 小时(hh:mm:ss)

  • %S 秒(00……59)

  • %s 秒(00……59)

  • %p AM或PM

  • %w 一个星期中的天数(0=Sunday ……6=Saturday )

  • %U 星期(0……52), 这里星期天是星期的第一天

  • %u 星期(0……52), 这里星期一是星期的第一天

例:

计算公司员工入职的天数

SELECT ename,DATEDIFF(CURDATE(),hiredate) FROM emp;

计算公司员工入职的月数

SELECT ename, TIMESTAMPDIFF(MONTH, hiredate, CURDATE()) AS '月份' FROM emp;

计算公司员工入职的年份

SELECT ename, TIMESTAMPDIFF(YEAR, hiredate, CURDATE()) AS '年份' FROM emp;

入职41年以上的员工 工资涨 2000

SELECT ename, TIMESTAMPDIFF(YEAR, hiredate, CURDATE()) AS '年份',salary+2000,salary 
FROM emp
WHERE  TIMESTAMPDIFF(YEAR, hiredate, CURDATE())>41;

显示在 2 月份入职的员工信息

SELECT ename,hiredate FROM emp WHERE MONTH (hiredate)=2;

显示在星期三入职的员工信息

SELECT * ,DAYOFWEEK(hiredate) AS '星期几' FROM emp WHERE DAYOFWEEK(hiredate)=4;

假设 SCOTT 入职时 24 岁,现在多大了?

SELECT TIMESTAMPDIFF(YEAR, hiredate, CURDATE()) AS '年份',24+TIMESTAMPDIFF(YEAR, hiredate, C
URDATE()) AS '现在年龄' 
FROM emp WHERE ename = 'SCOTT';

员工试用期为 3 个月,显示他们转正日期

SELECT ename,hiredate,DATE_ADD(hiredate,INTERVAL 3 MONTH) AS '转正日期' FROM emp;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值