mysql处理时间常用的函数_mysql常用函数实例总结【聚集函数、字符串、数值、时间日期处理等】...

本文实例讲述了mysql常用函数。分享给大家供大家参考,具体如下:

本文内容: mysql函数的介绍 聚集函数 avg count max min sum 用于处理字符串的函数 合并字符串函数:concat(str1,str2,str3…) 比较字符串大小函数:strcmp(str1,str2) 获取字符串字节数函数:length(str) 获取字符串字符数函数:char_length(str) 字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x) 字符串查找函数 获取指定位置的子串 字符串去空函数 字符串替换函数: 用于处理数值的函数 绝对值函数:abs(x) 向上取整函数:ceil(x) 向下取整函数:floor(x) 取模函数:mod(x,y) 随机数函数:rand() 四舍五入函数:round(x,y) 数值截取函数:truncate(x,y) 用于处理时间日期的函数 获取当前日期:curdate(),current_date() 获取当前时间:curtime(),current_time() 获取当前日期时间:now() 从日期中选择出月份数:month(date),monthname(date) 从日期中选择出周数:week(date) 从日期中选择出周数:year(date) 从时间中选择出小时数:hour(time) 从时间中选择出分钟数:minute(time) 从时间中选择出今天是周几:weekday(date),dayname(date)

首发日期:2018-04-14

mysql函数的介绍: 为了简化操作,mysql提供了大量的函数给程序员使用(比如你想输入当前时间,可以调用now()函数) 函数可以出现的位置:插入语句的values()中,更新语句中,删除语句中,查询语句及其子句中。

聚集函数: 聚集函数用于汇集记录(比如不想知道每条学生记录的确切信息,只想知道学生记录数量,可以使用count())。 聚集函数就是用来处理“汇集数据”的,不要求了解详细的记录信息。 聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。

实验表数据(下面的运行数据基于这个表): create table student(

name varchar(15),

gender varchar(15),

age int

);

insert into student values("lilei","male",18);

insert into student values("alex","male",17);

insert into student values("jack","male",20);

insert into student values("john","male",19);

insert into student values("nullpeople","male",null);

avg(字段)函数: 返回指定字段的数据的平均值 avg() 通过对表中行数计数并计算指定字段的数据总和,求得该字段的平均值。

160c28bbb85009c980db33186c354c95.png avg() 函数忽略列值为 NULL 的行,如果某行指定字段为null,那么不算这一行。

count(字段)函数: 返回指定字段的数据的行数(记录的数量) 字段可以为"*",为*时代表所有记录数,与字段数不同的时,记录数包括某些字段为null的记录,而字段数不包括为null的记录。

272f74e58fcf5c166834584ae523c132.png

8d98658204b9d67e1ce416f2c7a8e87f.png

max(字段)函数: 返回指定字段的数据的最大值

cc00b51e4b34d5a716fac8af87fa1451.png 如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最大值。 max() 函数忽略列值为 null的行

min(字段)函数: 返回指定字段的数据的最小值

baead3237569e1d36d89817c963a5627.png 如果指定字段的数据类型为字符串类型,先按字符串比较,然后返回最小值。 min()函数忽略列值为 null的行

sum(字段)函数: 返回指定字段的数据之和

4ac0f582f32fb1df98b40896240bbe52.png sum()函数忽略列值为 null的行

补充: 聚集函数的字段如果的数据为null,则忽略值为null的记录。 比如avg:有5行,但是只有四行的年龄数据,计算结果只算四行的, 但是如果不针对字段,那么会计算,比如count(x)是计算记录数的,null值不影响结果。 还有一些标准偏差聚集函数,这里不讲述,想了解更多的可以百度。 聚集函数在5.0+版本上还有一个选项DISTINCT,与select中类似,就是忽视同样的字段。【不可用于count(x)】

583ed71dc6a8dec852f1be2f69a8eef2.png

用于处理字符串的函数:

合并字符串函数:concat(str1,str2,str3…) 用于将多个字符串合并成一个字符串,如果传入的值中有null,那么最终结果是null 如果想要在多个字符串合并结果中将每个字符串都分隔一下,可以使用concat_ws(分隔符,str1,str2,str3…),如果传入的分隔符为null,那么最终结果是null(不过这时候如果str有为null不影响结果)

1861fdf42d6241caed3c59c75283d426.png

比较字符串大小函数:strcmp(str1,str2) 用于比较两个字符串的大小。左大于右时返回1,左等于右时返回0,,左小于于右时返回-1, strcmp类似编程语言中的比较字符串函数(依据ascll码?),会从左到右逐个比较,直到有一个不等就返回结果,否则比较到结尾。

0d411fdd18598fd755e78fa06eb105d4.png

获取字符串字节数函数:length(str) 用于获取字符串字节长度(返回字节数,因此要注意字符集)

6d9a88f119ee39b9d3b08cb261345bb6.png

获取字符串字符数函数:char_length(str) 用于获取字符串长度

d116644e2edb92c3647e0eb55bb0c8ee.png

字母大小写转换函数:大写:upper(x),ucase(x);小写lower(x),lcase(x) upper(x),ucase(x)用于将字母转成大写,x可以是单个字母也可以是字符串

2817e72fb747df398d09afed3f36758f.png lower(x),lcase(x)用于将字母转成小写,x可以是单个字母也可以是字符串

23251807c9cd13cb5ca987978fbe0e34.png 对于已经是了的,不会进行大小写转换。

字符串查找函数: find_in_set(str1,str2) 返回字符串str1在str2中的位置,str2包含若干个以逗号分隔的字符串(可以把str2看出一个列表,元素是多个字符串,查找结果是str1在str2这个列表中的索引位置,从1开始)

d41f462b8bed6a98b73564664ed4d1d3.png field(str,str1,str2,str3…) 与find_in_set类似,但str2由一个类似列表的字符串变成了多个字符串,返回str在str1,str2,str3…中的位置。

9014a2971e77b6b0cec8701f33f272cd.png locate(str1,str2): 返回子串str1在字符串str2中的位置

361982e0e7b89bf6ba481e3e7bb18a30.png position(str1 IN str2) 返回子串str1在字符串str2中的位置

e62bfa8f5a130f95f56d767d0169a998.png instr(str1,str2) 返回子串str2在字符串str1中的位置【注意这里调转了】

0942063c9e4cb88d404418733259f6e1.png

获取指定位置的子串: elt(index,str1,str2,str3…) 返回指定index位置的字符串

01572e5129de4bee217df1ee89bd16f5.png left(str,n) 截取str左边n个字符

cac9a3d60d87e9a71c8f6d2a1aea948f.png right(str,n) 截取str右边n个字符

f97bce2b1a961d75bb0c43ef5b80b38a.png substring(str,index,len) 从str的index位置截取len个字符

66d254323eb07b18c3ef656635d19da3.png

字符串去空函数: ltrim(str): 去除字符串str左边的空格

3fad15bec7855803883bc6a9003e1f9e.png rtrim(str) 去除字符串str右边的空格

fe2525d06359676c96a077eb5ff3f2d5.png trim() 去除字符串str两边的空格

063c7a393401a4c8f7c441069688c0b3.png

字符串替换函数: insert(str1,index,len,str2) 使用str2从str1的index位置替换str1的len个元素

da0f07ef3deddd84ccb51938a8550de2.png replace(str,str1,str2) 将str中的子串str1全部替换成str2

ed4f44c3265dbac0be5d07cfac29b1ed.png

用于处理数值的函数:

绝对值函数:abs(x) 返回x的绝对值

向上取整函数:ceil(x) 返回x的向上取整的整数

向下取整函数:floor(x) 返回x的向下取整的整数

取模函数:mod(x,y) 返回x mod y的结果

随机数函数:rand() 返回0-1内的随机数 如果想对某种情况都使用同一随机值,可以使用rand(x),x相同时返回同样的随机结果。

d51091433627cabced260ed523ace013.png

四舍五入函数:round(x,y) 返回数值x带有y为小数结果的数值(四舍五入)

ea99f44a91be2ef77ddc905d225e004e.png

数值截取函数:truncate(x,y) 返回数值x截取y位小数的结果(不四舍五入)

d51a134218abc296f9d4095a871c7cd4.png

用于处理时间日期的函数:

获取当前日期:curdate(),current_date() 返回格式为:

c91beb760ab5ac6544edc4ec2c45b05a.png

获取当前时间:curtime(),current_time() 返回格式为:

3f5e91d29b66b5870cbeec714251e107.png

获取当前日期时间:now() 返回格式为:

bc2aab5b2d781cfab455370399c2272e.png

从日期中选择出月份数:month(date),monthname(date)

68085b27d4c7c031746519a236167bf0.png

从日期中选择出周数:week(date) 返回格式为:

1c70e96fca65923e2a5adbbe1059984a.png

从日期中选择出周数:year(date) 返回格式为:

77a9537692223fea05da4628e5993f42.png

从时间中选择出小时数:hour(time) 返回格式为:

a35286be95acde67532d7e7229f5e00d.png

从时间中选择出分钟数:minute(time) 返回格式为:

d32947bc1685b98ab4bcbdd1a5c4e1a9.png

从时间中选择出今天是周几:weekday(date),dayname(date) 返回格式为:

49a49c0c1b0d595c6d32b36a3ae39dc1.png

日期函数还是比较常用的,想了解更多,可以参考官方文档:

https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html

想了解更多函数,可以参考官方文档(下面的是5.7的):

https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》

希望本文所述对大家MySQL数据库计有所帮助。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值