MySQL函数


函数分类:数字函数、字符函数、日期函数、条件函数

一、数字函数

函数功能用例
ABS绝对值ABS(-100)
ROUND四舍五入ROUND(4.63)
FLOOR强制舍位到最近的整数FLOOR(9.9)
CEIL强制进位到最近的整数CEIL
POWER幂函数POWER(2,3)
LOG对数函数LOG(7,3)
LN对数函数LN(10)
SQRT开平方SQRT(9)
PI圆周率PI()
SIN三角函数SIN(1)
COS三角函数COS(1)
TAN三角函数TAN(1)
COT三角函数COT(1)
RADIANS角度转换弧度RADIANS(30)
DEGREES弧度转换角度DEGREES(1)

二、字符函数

函数功能用例
LOWER转换小写字符LOWER(ename)
UPPER转换大写字符UPPER(ename)
LENGTH字符数量LENGTH(ename)
CONCAT连接字符串CONCAT(sal, "$")
INSTR字符出现的位置INSTR(ename, "A")
INSERT插入/替换字符INSERT(“你好”,1,0,"先生")
REPLACE替换字符REPLACE("你好先生","先生","女士")
SUBSTR截取字符串SUBSTR("你好世界",3,4)
SUBSTRING截取字符串SUBSTRING("你好世界",3,2)
LPAD左侧填充字符串LPAD("Hello",10,"*")
RPAD右侧填充字符串RPAD("Hello",10,"*")
TRIM去除首尾空格TRIM(" 你好先生 ")
## 三、日期函数
  1. NOW()函数获取系统日期和时间,格式为YYYY-MM-DD HH:MM:SS
  2. CURDATE()函数获取系统日期,格式为YYYY-MM-DD
  3. CURTIME()函数获取系统时间,格式为HH:MM:SS
  4. DATE_FORMAT() 函数用于格式化日期,返回用户需要的日期格式。
DATE_FORMAT(date,format)

示例:

SELECT ename,DATE_FORMAT(hiredate, "%Y")
FROM t_emp;

可以使用的格式如下:

格式描述
%a缩写星期名
%b缩写月名
%c月,数值
%D带有英文前缀的月中的天
%d月的天,数值(00-31)
%e月的天,数值(0-31)
%f微秒
%H小时(00-23)
%h小时(01-12)
%I小时(01-12)
%i分钟,数值(00-59)
%j年的天(001-366)
%k小时(0-23)
%l小时(1-12)
%M月名
%m月,数值(00-12)
%pAM 或 PM
%r时间,12-小时(hh:mm:ss AM 或 PM)
%S,%s秒(00-59)
%T时间, 24-小时(hh:mm:ss)
%U,%u周(00-53)星期日是一周的第一天
%V,%v周(01-53)星期日是一周的第一天,与 %X 使用
%W星期名
%w周的天(0=星期日, 6=星期六)
%X,%x年,其中的星期日是周的第一天,4 位,与 %V 使用
%Y年,4 位
%y年,2 位

注意:MySQL数据库中,两个日期不能直接加减,日期与数字也不能加减

  1. DATE_ADD() 函数 可以实现日期的偏移计算,而且时间单位很灵活。
DATE_ADD(date,INTERVAL expr type)

date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔,即偏移量。
type 参数可以是下列值:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH
    示例:
SELECT DATE_ADD(NOW(), INTERVAL 15 DAY);

6.DATEDIFF()函数用来计算两个日期之间相差的天数。

DATEDIFF(日期, 日期)

四、条件函数

SQL语句中可以利用条件函数来实现编程语言中的条件判断。

IFNULL(表达式,)
IF(表达式,1,2)

示例:公司发礼品,SALLS部门发放礼品A,其余部门发放礼品B,打印每名员工获得的礼品。

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

复杂的条件判断:

CASE
	WHEN 表达式 THEN1
	WHEN 表达式 THEN2
	……
	ELSE 值N
END

示例:员工集体旅游,每个部门旅游目的地是不同的。SALLS部门去P1地点,ACCOUNTING部门去P2地点,RESEARCH部门去P3地点,查询每名员工的旅行地点。

SELECT e.empno,e.ename,
	CASE
		WHEN d.dname="SALLS" 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;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值