MySQL 函数

一.数学函数

数学函数是用来处理数值数据方面的运算,MySQL 中主要的数学函数有绝对值函数、三角函数、对数函数和随机函数等。
使用数学函数的过程中,如果有错误发生,该函数将返回 null。
 

 数学函数

功能介绍

 ABS(x)

返回 x 的绝对值

 PI( )

返回圆周率,默认显示 6 位小数 3.141593

 SQRT(x)

返回非负数 x 的二次方根

 POW(x,y) 和

 POWER(x,y)

返回 x 的 y 次乘方的结果值,POW(3,4) 的结果值为 81

 CEIL(x) 和 

 CEILING(x)

返回不小于 x 的最小整数值

 FLOOR(x)

返回不大于 x 的最大整数值

 ROUND(x)

返回最接近 x 的整数,对 x 进行四舍五入

 ROUND(x,y)

返回最接近 x 的整数,对 x 进行四舍五入 , 保留小数点后面 y 位

 数学函数

功能介绍

 TRUNCATE(x,y)

返回截去小数点后 y 位的数值 x

 RAND()

返回一个随机浮点值 v,0<=v<=1

 RAND(x)

返回一个随机浮点值 v,0<=v<=1;x 为整数,被用作种子值, 用来产生重复序列。

 LOG(x)

返回 x 的自然对象,x 相对于基数 e 的对数

 LOG10(x)

返回 x 的基数为 10 的对数

 RADIANS(x)

返回 x 由角度转化为弧度的值,如 x 取值 90,则返回的弧度为PI( )/2

 DEGREES(x)

返回 x 由弧度转化为角度的值,如 x 取 PI( ),则返回的角度值为180

2.控制流函数

控制流函数也称作“条件判断函数”,其根据满足的条件不同,执行相应的流程。
MySQL 中常见的控制流函数有 IF、IFNULL。
 

 控制流函数

功能介绍

 IF(expr,v1,v2)

返回表达式 expr 得到不同运算结果时对应的值。若 expr 为TRUE(expr<>0 and expr<>null), 则 IF( ) 的返回值为 v1,否则为 v2

 IFNULL(v1,v2)

返回参数 v1 或 v2 的值。如果 v1 不为 null,则返回值为 v1,否则返回值为 v2

二.字符串函数
 
字符串函数主要用来处理字符串数据,MySQL 字符串函数主要有计算字符长度函数、字符串合并函数、字符串转换函数、字符串比较函数以及查找指定字符串位置函数

 

 

 字符串函数

功能介绍

 RIGHT(str,len)

截取右侧字符串函数,返回 str 最左的 len 个字符

 LTRIM(str)

删除字符串 str 左侧所有空格

 RTRIM(str)

删除字符串 str 右侧所有空格

 TRIM(str)

删除字符串 str 左右两端所有空格

 TRIM(s1 from str)

删除字符串 str 中两端包含的子字符串 s1

 REPEAT(str,n)

重复生成字符串函数。返回一个由重复的字符串 str 组成的字符串,该字符串中 str 的重复次数是 n。若 n<=0,则返回一个空字符串;若 str 或 n 为 null,则返回 null

 STRCMP(s1,s2)

比较字符串大小函数。若 s1 和 s2 相等,则返回 0;若 s1 小于 s2,则返回 -1;若 s1 大于 s2,则返回 1

 LOCATE(s1,str)

匹配字符串开始位置的函数。返回子字符串 s1 在字符串 str 中第一次出现的位置。若 str 中没有包括 s1,则返回 0

 字符串函数

功能介绍

 CHAR_LENGTH(str)

返回字符串 str1 包含字符的个数。像中文这种多字节的一个字符也只能算单字符

 LENGTH(str)

返回字符串 str1 包含字节的个数

 CONCAT(s1,s2,…)

字符串合并函数,返回结果为连接参数产生的字符串。参数可以是一个或多个。如有任意一个字符串参数为 null,则返回值为 null

 INSERT(str,pos,len,newstr)

替换字符串函数。字符串 str 在位置 pos 起始且长度为 len 的子串由字符串 newstr 替换,最终返回替换之后的 str

 LOWER(str) 和 LCASE(str)

这两个函数功能相同,都是将字符串 str 中的字母转换为小写

 UPPER(str) 和 UCASE(str)

这两个函数功能相同,都是将字符串 str 中的字母转换为大写

 SUBSTR(str,pos,len)  和

 SUBSTRING(str,pos,len)

截取原始字符串 str 中从 pos 开始的 len 长度字符串。len 是可选项,如果该项缺省则获取从 pos 开始的剩余字符串内容     

 字符串函数

功能介绍

 ELT(n,s1,s2…sn)

返回指定位置的字符串函数。根据 n 的取值,返回指定的字符串 sn。若 n=1,则返回 s1;若 n=2,则返回 s2,以此类推。若 n<1 或 n>sn 的数目,则返回值为 null

 FIELD(s,s1,s2…sn)

返回指定字符串位置的函数。返回字符串 s 在 s1,s2,…sn 中出现的位置。如果找不到,则返回值为 0;若 s 为 null,则返回值为 0

 INSERT(str,s1)

匹配字符串开始位置的函数。功能同 LOCATE 函数

 REPLACE(str,s1,s2)

替换函数。使用字符串 s2 替换字符串 str 中所有的子字符串s1

 REVERSE(str)

返回和原始字符串 str 顺序相反的字符串

三.MySQL 日期和时间函数

 日期和时间函数主要用来处理日期和时间的值,一般的日期函数除了使用 DATE 类型的参数外,也可以使用DATETIME 或 TIMESTAMP 类型的参数,只是忽略了这些类型值的时间部分。类似的情况还有以 TIME 类型为参数的函数,可以接受 TIMESTAMP 类型的参数,只是忽略其中的日期部分,许多日期函数可以同时接受数值和字符串类型的参数。

 

 日期和时间函数

功能介绍

 CURDATE( ) 和

 CURRENT_DATE( )

这两个函数作用相同,都是返回当前系统的日期值

 CURTIME( ) 和

 CURRENT_TIME( )

这两个函数作用相同,都是返回当前系统的时间值

 CURRENT_TIMESTAMP( )、

 LOCALTIME( )、NOW( )、

 SYSDATE( )

这 4 个函数作用相同,都是返回当前系统的日期和时间值

 DAYNAME(date)

返回日期参数 date 对应的星期几的英文名称。例如 ,dayname("2017-07-24") 的值为 Monday

 DAYOFWEEK(date)

返回日期参数 date 对应的一周的索引位置。返回值的范围是 1 ~ 7。其中,1 表示周日,2 表示周一,…,7 表示周六。例如,dayofweek("2017-07-24") 的值为 2,表示周一

 WEEKDAY(date)

返回日期参数 date 对应的一周的索引位置。返回值的范围是 0 ~ 6。其中,0 表示周一,1 表示周二,…,6 表示周日。例如,weekday("2017-07-24") 的值为 0,表示周一

 

 日期和时间函数

功能介绍

 WEEK(date,mode)

该函数返回日期参数 date 对应的星期数。WEEK( )的双参数形式允许指定该星期是否起始于周日或周一, 以及返回值的范围是否为从 0 到 53 或从 1 到53。若 mode 参数被省略,则使用 default_week_format 系统自变量的值

 DAYOFYEAR(date)

返回日期参数 date 对应的当前年份的第几天,范围为 1 ~ 365

 year(date)

返回日期参数 date 对应的年份

 month(date)

返回日期参数 date 对应的月份

 day(date)

返回日期参数 date 对应的当前月份的天数值

 DATE_ADD(date,INTERVAL

 expr type) 和   

 ADDDATE(date,

 INTERVAL expr type)

加法计算日期函数,这两个函数作用相同,都是返回一个以参数 date 为起始日期加上时间间隔之后的日期值。expr 参数是希望添加的时间间隔,type 表示时间间隔的类型,type 和 expr 取值见表 5.6

 日期和时间函数

功能介绍

 DATE_SUB(date,INTERVAL

 expr type) 和

 SUBDATE(date,INTERVAL

 expr type)

减法计算日期函数,这两个函数作用相同,都是返回一个以参数 date 为起始日期减去时间间隔之后的日期值。expr 参数是希望添加的时间间隔,type 表示时间间隔的类型,type 和 expr 取值见表 5.6

 ADDTIME(time,expr)

加法计算时间值函数,返回将 expr 值加上原始时间time 之后的值

 SUBTIME(time,expr)

减法计算时间值函数,返回将原始时间 time 减去expr 之后的值

 DATEDIFF(date1,date2)

计算两个日期之间天数间隔的函数,返回参数 date1 减去 date2 之后的值。如果 date1 在 date2 之前,返回的值为负值

 DATE_FORMAT(date,

 format)

日期和时间格式化函数。返回根据参数 format 指定的格式显示的 date 值。format 包含的格式见表 5.7,即 DATE_FORMAT 和 TIME_FORMAT 函数中format 格式表

 TIME_FORMAT(time,

 format)

时间格式化函数。返回根据参数 format 指定的格式显示的 time 值

 type 和 expr 取值

 type 值

预期的 expr 格式

 MICROSECOND

微秒数

 SECOND

秒数

 MINUTE

分钟数

 HOUR

小时数

 DAY

天数

 WEEK

周数

 MONTH

月数

 QUARTER

季度数

 YEAR

年数

 type 值

预期的 expr 格式

 SECOND_MICROSECOND

‘秒数 . 微秒数’

 MINUTE_MICROSECOND

‘分钟数 . 微秒数’

 MINUTE_SECOND

分钟数 . 秒数

 HOUR_MICROSECOND

小时数 . 微秒数

 HOUR_SECOND

小时数 : 分钟数 : 秒数

 HOUR_MINUTE

小时数 : 分钟数

 DAY_MICROSECOND

天数 . 微秒数

 

 type 值

预期的 expr 格式

 DAY_SECOND

‘天数 小时数 : 分钟数 : 秒数’

 DAY_MINUTE

‘天数 小时数 : 分钟数’

 DAY_HOUR

‘天数 小时数’

 YEAR_MONTH

年数 - 月数

DATE_FORMAT 和 TIME_FORMAT 函数中 format 格式表 

 格式说明符

描述说明

 %a

一星期中每天名称的缩写(Sun...Sat)

 %b

月份的缩写(Jan...Dec)

 %c

月份的数字表现形式(0...12)

 %D

带有英语后缀的一个月中的每一天的名称(0th、1st、2nd、3rd)

 %d

用数字形式表现的每月中的每一天(00...31)

 %e

用数字形式表现的每月中的每一天(0...31)

 %f

毫秒(000000...999999)

 %H

24 时制显示的小时(00...23)

 %h

12 时制显示的小时(01...12)

 格式说明符

描述说明

 %I

12 时制显示的小时(01...12)

 %i

以数字形式表现的分钟数(00...59)

 %j

一年中的每一天(001...366)

 %k

24 时制小时的另一种表现格式(0...23)

 %l

12 时制小时的另一种表现格式(1...12)

 %M

用完整英文名称表示的月份(January...December)

 %m

用数字表现的月份(00...12)

 %p

上午(AM)或下午(PM

 %r

12 时制的时间值(hh:mm:ss,后跟 AM 或 PM)

 格式说明符

描述说明

 %S

秒(00...59)

 %s

秒(00...59)

 %T

24 时制的小时(hh:mm:ss)

 %U

星期(00...53),其中星期天是每星期的开始日

 %u

星期(00...53),其中星期一是每星期的开始日

 %V

星期(01...53),其中星期天是每星期的开始日,和 %X 一起使用

 %v

星期(01...53),其中星期一是每星期的开始日,和 %x 一起使用

 %W

一星期中各日名称(Sunday...Saturday)

 %w

一星期中各日名称(0 代表星期日,6 代表星期六,以此类推

 格式说明符

描述说明

 %X

某星期所处年份。其中,星期天是每星期的开始日,采用 4 位数字形式表现,和 %V 一起使用

 %x

某星期所处年份。其中,星期一是每星期的开始日,采用 4 位数字形式表现,和 %V 一起使用

 %Y

4 位数字表示的年份

 %y

2 位数字表示的年份

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值